import java.io.*;
public class Test{public static void main(String args[]){
String name;
int age;try{BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
System.out.print("请输入你的名字:");
name=input.readLine();
System.out.print("请输入你的年龄:");
age =Integer.parseInt(input.readLine());}catch(IOException e){}System.out.println(name+" is "+age);}
}会出现这样的错误提示:
Test.java:18: variable name might not have been initialized
System.out.println(name+" is "+age);
^
Test.java:18: variable age might not have been initialized
System.out.println(name+" is "+age);如果把
System.out.println(name+" is "+age);
这句放进try里面才可以编译成功这是为什么呢?
^
2 errors
public class Test{public static void main(String args[]){
String name;
int age;try{BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
System.out.print("请输入你的名字:");
name=input.readLine();
System.out.print("请输入你的年龄:");
age =Integer.parseInt(input.readLine());}catch(IOException e){}System.out.println(name+" is "+age);}
}会出现这样的错误提示:
Test.java:18: variable name might not have been initialized
System.out.println(name+" is "+age);
^
Test.java:18: variable age might not have been initialized
System.out.println(name+" is "+age);如果把
System.out.println(name+" is "+age);
这句放进try里面才可以编译成功这是为什么呢?
^
2 errors
类似的,在if和for等块的内部进行初始化也会有这个问题。字符串至少要初始化为""或者null,整数至少要初始化为0,-1等。