每次我尝试编译.java文件时都会出现以下错误
"错误:变量max已在方法main(String [])中定义 int max = j; "
我还没有弄清楚问题是什么或如何解决。现在已经坚持了大约2个小时。我试图最终做的是在我的数组中输入一个整数,并将该整数中的数字从最小到最大排序以提供上下文。
以下是我的代码中的相关部分:
int[] wholeNumber = new int[1];
//Sorting algorithm beginning
int n = wholeNumber.length;
System.out.println("Length of array is :" + n); //Array length displayed
for(int i = 0; i < 1; i++)
{
System.out.println("Hello!");
int max = i;
for(int j = i+1; j < 1; j++)
{
if (wholeNumber[j] > wholeNumber[max])
{
int max = j;
}
}
if (max != i)
{
wholeNumber[i] = wholeNumber[max];
wholeNumber[max] = wholeNumber[i];
}
}
//Sorting algorithm end
答案 0 :(得分:0)
您只需要在您需要的最高范围内声明int max
一次。从int
语句中删除if
关键字;这将把它变成赋值语句而不是声明语句。
顺便说一句,这句话毫无意义:
if (max != i) {
wholeNumber[i] = wholeNumber[max];
wholeNumber[max] = wholeNumber[i];
}
wholeNumber[i]
将设置为wholeNumber[max]
中的任何内容,然后您尝试将其重新设置为wholeNumber[max]
。你可能会进行交换,这需要(在这种情况下)第三个变量:
if (max != i) {
int swp = wholeNumber[i];
wholeNumber[i] = wholeNumber[max];
wholeNumber[max] = swp;
}
答案 1 :(得分:0)
如错误所示,您已int max
声明了两次。您需要将第二个更改为变量赋值,而不是声明:
int max = i;
for(int j = i+1; j < 1; j++)
{
if (wholeNumber[j] > wholeNumber[max])
{
max = j; // NOT: int max = j;
}
}