import java.util.Scanner;
import java.util.InputMismatchException;
public class Demo
{
public static void main(String [] agrs){
Scanner keyBoard = new Scanner(System.in);
int input;
do{
System.out.println("[ 1] Case 1.");
System.out.println("[ 2] Case 2.");
System.out.println("[ 3] Case 3.");
System.out.println("[ 0] Case 0.");
System.out.print("Your Choice: ");
try{
input = keyBoard.nextInt();
}
catch(InputMismatchException e){
System.out.println("Error");
}
switch (input){
default:
System.out.println("Default");
break;
case 1:
System.out.println("One");
keyBoard.next();
break;
case 2:
System.out.println("Two");
break;
case 3:
System.out.println("Three");
break;
case 0:
System.exit(0);
break;
}
}
while(input != 0);
}
我想在控制台中创建一个菜单,但出现错误。 错误:变量输入可能尚未初始化。 我知道为什么我会犯这个错误,但我不知道如何解决它。 我只懂一点英语,所以我希望修改我的主题以适应更多内容 谢谢大家
最佳答案
这应该可以解决无限循环和无效输入以及编译器错误的问题:
import java.util.Scanner;
import java.util.InputMismatchException;
public class Demo {
public static void main(String[] agrs) {
Scanner keyBoard = new Scanner(System.in);
// This fixes the compiler error!
int input = -1;
do {
System.out.println("[ 1] Case 1.");
System.out.println("[ 2] Case 2.");
System.out.println("[ 3] Case 3.");
System.out.println("[ 0] Case 0.");
System.out.print("Your Choice: ");
try {
input = keyBoard.nextInt();
} catch (InputMismatchException e) {
// This fixes the endless loops on invalid inputs!
System.out.println("Invalid input " + keyBoard.next());
input = -1;
}
switch (input) {
default:
System.out.println("Default");
break;
case 1:
System.out.println("One");
keyBoard.next();
break;
case 2:
System.out.println("Two");
break;
case 3:
System.out.println("Three");
break;
case 0:
System.exit(0);
break;
}
} while (input != 0);
}
}
关于java - 变量可能尚未在 java 中初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15595259/