Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么j从循环中出来时会失去它的值? import java.util.Scanner; 易问题的公共类{ 公共静态void main(字符串参数[]){ 扫描仪sc=新的扫描仪(System.in); int n=sc.nextInt(); int j; 对于(int i=0;i_Java_Loops - Fatal编程技术网

为什么j从循环中出来时会失去它的值? import java.util.Scanner; 易问题的公共类{ 公共静态void main(字符串参数[]){ 扫描仪sc=新的扫描仪(System.in); int n=sc.nextInt(); int j; 对于(int i=0;i

为什么j从循环中出来时会失去它的值? import java.util.Scanner; 易问题的公共类{ 公共静态void main(字符串参数[]){ 扫描仪sc=新的扫描仪(System.in); int n=sc.nextInt(); int j; 对于(int i=0;i,java,loops,Java,Loops,必须初始化一个局部变量。(在您的情况下,j) 如果它是一个类变量,它将自动初始化 请在此处阅读更多信息: 因此,一个简单的修复方法就是初始化intj=0;局部变量没有默认值。因为Java编译器无法判断程序是否会进入循环 import java.util.Scanner; public class InSearchOfAnEasyProblem { public static void main(String args[]){ Scanner sc = new Scann

必须初始化一个局部变量。(在您的情况下,
j

如果它是一个类变量,它将自动初始化

请在此处阅读更多信息:


因此,一个简单的修复方法就是初始化
intj=0;

局部变量没有默认值。因为Java编译器无法判断程序是否会进入循环

import java.util.Scanner;

public class InSearchOfAnEasyProblem {
    public static void main(String args[]){
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int j;
        for(int i=0; i<n; i++){
            j=sc.nextInt();
            if(j==1){
                System.out.println("HARD");
                break;
            }
        }
        if(j==0)
            System.out.println("EASY");
    }
}
可能是此代码的可能执行路径,将未初始化的变量与零进行比较


解决方案:在j中输入一些值,
intj=0;
会起作用。

想想当第一个输入(输入
n
)小于1时会发生什么。旁注:您可以通过:
j
完全删除:
如果(1==sc.nextInt()){System.out.println(“硬”);返回;}
int j;
if(j==0)
    System.out.println("EASY");