我正在尝试编写一个程序: 1)要求用户输入以创建10个元素的数组 2)检查以确保元素是不同的 3)确定元素中的最高值。
我认为我很接近,但我一直收到此错误消息:
错误:变量i已在方法main(String [])中定义 for(int i = 0; i< myList.length; i ++){
这是我的完整代码:
import java.util.Scanner;
public class max101 {
public static void main(String[] args) {
double[] myList = new double[10];
double max = myList[0];
java.util.Scanner input = new java.util.Scanner(System.in);
System.out.print("Enter " + myList.length + " distinct numbers: ");
for (int i = 0; i < myList.length; i++)
myList[i] = input.nextDouble ();
for(int i = 0; i <myList.length; i++) {
for(int j = i+1; j<myList.length; j++) {
if(myList[i] == (myList[j])); {
System.out.println("Numbers are not distinct. Please try again and enter 10 distinct numbers");
}
if(myList[i] != (myList[j])); {
for (int i = 0; i < myList.length; i++) {
if (myList[i] > max) max = myList[i];
System.out.println("The maximum value is " + max);
}
}
}
}
}
}
答案 0 :(得分:0)
int
重新初始化变量,只需添加i = 0
查看范围如何工作也可能有用。
答案 1 :(得分:0)
我的怀疑是你没有正确地结束你的阻挡 - 从{
到}
的障碍。当我让我的IDE缩进你的代码时,它是:
for (int i = 0; i < myList.length; i++)
myList[i] = input.nextDouble();
for (int i = 0; i < myList.length; i++) {
for (int j = i + 1; j < myList.length; j++) {
if (myList[i] == (myList[j]))
;
{
System.out.println("Numbers are not distinct. Please try again and enter 10 distinct numbers");
}
if (myList[i] != (myList[j]))
;
{
for (int i = 0; i < myList.length; i++) {
if (myList[i] > max)
max = myList[i];
System.out.println("The maximum value is " + max);
}
}
}
}
我想你现在看到i
在已经声明i
的for循环中声明了。此外,一旦你检测到重复,我认为你应该突破两个循环,而不是检查更多的重复,并且在用户输入10个新数字之前找不到最大值。
还有一个提示,请不要在if (
... )
之后添加分号,这会破坏您的逻辑。