java局部变量名词可能尚未初始化
我得到这个“局部变量名词可能尚未初始化”错误,我不知道为什么?如果我将变量初始化为null,即noun = null
,程序在执行System.out.println("Enter noun: ");
时立即崩溃
int age;
System.out.println("Enter your age: ");
age = input.nextInt();
String name, adjective, adverb, verb, noun;
if(age > 13) {
System.out.println("Enter name: ");
name = input.nextLine();
input.nextLine();
System.out.println("Enter adjective: ");
adjective = input.nextLine();
System.out.println("Enter noun: ");
if(noun.equals("dork")){
System.out.println("That language is not allowed. Exiting");
System.exit(0);
} else {
noun = input.nextLine();
System.out.println("Enter adverb: ");
adverb = input.nextLine();
System.out.println("Enter verb: ");
verb = input.nextLine();
System.out.printf("%s is a %s %s. They are always %s %s", name, adjective, noun, adverb, verb);
}
} else {
System.out.printf("Your age is %s and You're still young to access this information", age);
}
# 1 楼答案
问题是:
把这条线放在if前面
# 2 楼答案
您收到的错误消息是由于在代码中使用变量
noun
时,该变量可能尚未初始化。在检查其值之前,可以尝试将noun
设置为用户输入。这将消除错误,同时让代码处于更合理、更可读的位置: