为什么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");