Java: 变量已在方法 main 中定义
Java: Variable is already defined in method main
所以我每次尝试编译 .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
您只需在您需要的最高范围内声明一次 int max
。从 if
语句中删除 int
关键字;这会将它变成赋值语句而不是声明语句。
顺便说一句,这个说法毫无意义:
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;
}
如错误所述,您 int max
声明了两次。您需要将第二个更改为变量 assignment,而不是 declaration:
int max = i;
for(int j = i+1; j < 1; j++)
{
if (wholeNumber[j] > wholeNumber[max])
{
max = j; // NOT: int max = j;
}
}
所以我每次尝试编译 .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
您只需在您需要的最高范围内声明一次 int max
。从 if
语句中删除 int
关键字;这会将它变成赋值语句而不是声明语句。
顺便说一句,这个说法毫无意义:
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;
}
如错误所述,您 int max
声明了两次。您需要将第二个更改为变量 assignment,而不是 declaration:
int max = i;
for(int j = i+1; j < 1; j++)
{
if (wholeNumber[j] > wholeNumber[max])
{
max = j; // NOT: int max = j;
}
}