尝试在 Java 中传递双精度数组时预期为“.class”
'.class' expected when trying to pass a double Array in Java
我是Java的新手,在研究它的过程中,我发现了一个杀死我的大脑近7个小时的练习。我尝试了我所知道的一切,我再次阅读了这本书的章节,我在谷歌上搜索了几个小时的答案,甚至在这里使用了搜索按钮,但没有任何帮助。我不明白第 26 行到底有什么问题:
import java.util.Scanner;
public class Esercizio {
public static void main(String[] args) {
Scanner tastiera = new Scanner(System.in);
System.out.println("");
System.out.println("Scrivi un intero per la lunghezza dell'Array.");
System.out.println("");
int lunghezzaArray = 0;
lunghezzaArray = tastiera.nextInt();
double[] valore = new double[lunghezzaArray];
System.out.println("");
System.out.println("Ora scrivi i numeri che vuoi dentro, possibilmente in ordine crescente.");
System.out.println("");
for (int i = 0; i < valore.length; i++) {
valore[i] = tastiera.nextDouble();}
boolean risultato = true;
risultato = strettamenteMaggiore(valore[]); // Here is the line!
System.out.println("Uscira' True o False? Risultato = " + risultato);
}
public static boolean strettamenteMaggiore(double[] valore) {
boolean risultato = false;
for (int i = 0; i < valore.length; i++) {
if (valore[i] < valore[i + 1]) {
risultato = true;}
else
risultato = false;
}
return risultato;
}
}
该程序是意大利语的,但我想这并不重要,变量和东西名称只是名称。
知道代码有什么问题吗?这是我第一次遇到数组和方法的这个错误。
编辑:
该练习要求编写一个名为 'strettamenteCrescente(double[] in)' 的静态方法,如果提供给输入的数组的每个值都大于它前面的值,则该方法会 returns "true"。否则,"false".
您将数组的位置传递给方法,但方法需要整个数组。
解决方法是:
risultato = strettamenteMaggiore(valore); // Here is the linee
而不是
risultato = strettamenteMaggiore(valore[]); // Here is the line!
Balduz 说得对。只需删除括号 []
。在Java中,括号用于声明数组,如double[] valore
,或引用数组的元素,如valore[i]
.要引用数组对象本身,只需使用数组名称即可。
我是Java的新手,在研究它的过程中,我发现了一个杀死我的大脑近7个小时的练习。我尝试了我所知道的一切,我再次阅读了这本书的章节,我在谷歌上搜索了几个小时的答案,甚至在这里使用了搜索按钮,但没有任何帮助。我不明白第 26 行到底有什么问题:
import java.util.Scanner;
public class Esercizio {
public static void main(String[] args) {
Scanner tastiera = new Scanner(System.in);
System.out.println("");
System.out.println("Scrivi un intero per la lunghezza dell'Array.");
System.out.println("");
int lunghezzaArray = 0;
lunghezzaArray = tastiera.nextInt();
double[] valore = new double[lunghezzaArray];
System.out.println("");
System.out.println("Ora scrivi i numeri che vuoi dentro, possibilmente in ordine crescente.");
System.out.println("");
for (int i = 0; i < valore.length; i++) {
valore[i] = tastiera.nextDouble();}
boolean risultato = true;
risultato = strettamenteMaggiore(valore[]); // Here is the line!
System.out.println("Uscira' True o False? Risultato = " + risultato);
}
public static boolean strettamenteMaggiore(double[] valore) {
boolean risultato = false;
for (int i = 0; i < valore.length; i++) {
if (valore[i] < valore[i + 1]) {
risultato = true;}
else
risultato = false;
}
return risultato;
}
}
该程序是意大利语的,但我想这并不重要,变量和东西名称只是名称。 知道代码有什么问题吗?这是我第一次遇到数组和方法的这个错误。
编辑: 该练习要求编写一个名为 'strettamenteCrescente(double[] in)' 的静态方法,如果提供给输入的数组的每个值都大于它前面的值,则该方法会 returns "true"。否则,"false".
您将数组的位置传递给方法,但方法需要整个数组。
解决方法是:
risultato = strettamenteMaggiore(valore); // Here is the linee
而不是
risultato = strettamenteMaggiore(valore[]); // Here is the line!
Balduz 说得对。只需删除括号 []
。在Java中,括号用于声明数组,如double[] valore
,或引用数组的元素,如valore[i]
.要引用数组对象本身,只需使用数组名称即可。