Java 找不到现有变量的符号 publicstaticvoidmain(字符串[]args){ int[]数组={4,5,7,1,5,4}; 对于(int j=0;jmin){ min=数组[j]; } } 系统输出打印(分钟); } }

Java 找不到现有变量的符号 publicstaticvoidmain(字符串[]args){ int[]数组={4,5,7,1,5,4}; 对于(int j=0;jmin){ min=数组[j]; } } 系统输出打印(分钟); } },java,Java,你能告诉我为什么找不到敏吗 Min正在for循环中声明。如果您将声明移到外面,它应该可以正常工作 例如: public static void main(String[] args) { int [] array= {4,5,7,1,5,4}; for(int j=0;j<array.length;j++) { int min; min=array[0]; if(array[j]&g

你能告诉我为什么找不到敏吗

Min正在for循环中声明。如果您将声明移到外面,它应该可以正常工作

例如:

public static void main(String[] args) {


        int [] array= {4,5,7,1,5,4};
        for(int j=0;j<array.length;j++) {
            int min;
            min=array[0];
            if(array[j]>min) {
                min=array[j];
            }
        }
        System.out.print(min);
    }
}
publicstaticvoidmain(字符串[]args){
int[]数组={4,5,7,1,5,4};
int min=数组[0];
对于(int j=0;jmin){
min=数组[j];
}
}
系统输出打印(分钟);
}
}

min
已在for循环中声明

删除
intmin并将以下内容置于for循环之外:

public static void main(String[] args) {
        int [] array= {4,5,7,1,5,4};
        int min=array[0];
        for(int j=0;j<array.length;j++) {
            if(array[j]>min) {
                min=array[j];
            }
        }
        System.out.print(min);
    }
}
因为它是一个局部变量,所以必须初始化它


同时移动
min=array[0]也在for循环外部。

因为min变量的作用域在for块内部。

您需要在循环外部声明
min
(因为作用域):

int[]数组={4,5,7,1,5,4};
int min=数组[0];//在循环外初始化min。

for(int j=0;jMin是for循环的局部值

int [] array= {4,5,7,1,5,4};
int min = array[0];// initialize min outside the loop.
for(int j=0;j<array.length;j++) {
    //min=array[0]; If you leave this here, you will 'reset' min each time
    if(array[j] < min) { // use "<" so that min will be the minimum
        min=array[j];
    }
}
System.out.print(min);
int[]数组={4,5,7,1,5,4};
int min=数组[0];
对于(int j=0;jmin){
min=数组[j];
}
}
系统输出打印(分钟);

如果(数组[j]只是将
min
移出for循环没有帮助,那么它不应该是
吗?每次都会覆盖
min
。同时将
min=array[0];
移出for循环。

您试图从声明它的不同范围访问
min

您正在为
-循环的
中声明它:

    int [] array= {4,5,7,1,5,4};
    int min = array[0];
    for(int j=0;j<array.length;j++) {
        if(array[j]>min) {
            min=array[j];
        }
    }
    System.out.print(min);

我让你的代码在语法上更加甜美



另外,您的代码中是否存在逻辑错误?您调用变量
min
,但您正在将大于
min
的数字分配给min。听起来您在寻找最大值,而不是最小值?

这可能有效,也可能无效。您正在将
min
重置为
数组[0]
每次迭代。是的,在我看到所有可能有效或可能无效的新答案后,刚刚修复了这个问题。您正在将
min
重置为
array[0]
每次迭代。这可能有效,也可能无效。您仍在将
min
重置为
array[0]
每次迭代。为了更全面地理解此处给出的答案,您应该了解所谓的“变量范围”。我相信您的教科书有很好的解释。您也可以使用谷歌了解更多信息。
    int [] array= {4,5,7,1,5,4};
    int min = array[0];
    for(int j=0;j<array.length;j++) {
        if(array[j]>min) {
            min=array[j];
        }
    }
    System.out.print(min);
for(int j=0; j < array.length; j++) {
    int min;
    min=array[0];
    if(array[j]>min) {
        min=array[j];
    }
} // min can't be used after this.
int min = array[0];
for (int i : array) {
    if (i > min) {
        min = i;
    }
}

System.out.println("The min is: " + min);