-2 java variables initialization
import java.util.*;
class Example {
public static void main(String args[]) {
Scanner input = new Scanner(System.in);
System.out.print("Input an integer : ");
int num = input.nextInt();
int y;
if (num > 100) {
y = 200;
}
if (num < 100) {
y = 200;
}
if (num == 100) {
y = 200;
}
System.out.println(y);
}
}
Run Code Online (Sandbox Code Playgroud)
错误:
Example.java:19: error: variable y might not have been initialized
System.out.println(y);
^
Run Code Online (Sandbox Code Playgroud)
如果没有if输入任何分支,y 则永远不会初始化。由于访问未初始化的局部变量是非法的,因此编译器会生成错误(如JLS 中定义的 \xc2\xa716)。编译器无法推断必须输入三种情况之一。
我建议在第二种情况下使用 else if ,在第三种情况下使用 else :
\nimport java.util.Scanner;\n\nclass Example {\n\n public static void main(String args[]) {\n Scanner input = new Scanner(System.in);\n System.out.print("Input an integer : ");\n int num = input.nextInt();\n int y;\n if (num > 100) {\n y = 200;\n }\n else if (num < 100) {\n y = 200;\n }\n else /* if (num == 100) */ {\n y = 200;\n }\n System.out.println(y);\n }\n}\nRun Code Online (Sandbox Code Playgroud)\n\n