接收错误:变量i已在方法main中定义

时间:2016-11-11 19:45:03

标签: java

我正在尝试编写一个程序:  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);
                  }
               }        
            }
         }
      }
   }

2 个答案:

答案 0 :(得分:0)

  1. 尝试在循环中使用不同的变量名称
  2. 如果您不想执行上述操作,请不要使用int重新初始化变量,只需添加i = 0
  3. 查看范围如何工作也可能有用。

答案 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 ( ... )之后添加分号,这会破坏您的逻辑。