我正在尝试制作一个基本的计算器来学习Java,并且在我的switch语句中一直说“这个局部变量可能没有被初始化”。这是代码的一部分
char operator;
System.out.println("Enter First number");
firstNumber = scan.nextDouble();
System.out.println("Enter Second Number");
secondNumber = scan.nextDouble();
switch(operator) {
case '+':
answer = firstNumber + secondNumber;
System.out.println("Result = "+ answer);
break;
(之后继续使用switch语句)
当我尝试编译我的程序时,它告诉我在switch(运算符)中运算符尚未初始化并且在'operator'下用红线表示'这个局部变量可能没有被初始化'。
它告诉我,我应该写:
char operator = 0;
这没用,所以我试过
char operator = null;
这也没有用 它会自动运行到
default:
System.out.println("Syntax Error");
如果案例没有正确完成,这是我的默认值。它运行到此,因为我已经定义了运算符应该是什么。
我该怎么做才能解决这个问题?
PS抱歉,如果这是一个混乱的帖子(这是我在StackOverflow上的第一个),如果您需要更多信息,请询问
答案 0 :(得分:1)
在这种情况下你应该使用以下代码。在使用
之前,必须初始化.char运算符System.out.println("choose operator");
operator c = scan.next().charAt(0);
答案 1 :(得分:0)
在switch语句中,只有+
的大小写,因此将operator初始化为0或null只会与default
大小写匹配。最好用+
答案 2 :(得分:0)
如果你只想进行操作" +"对于instace,所以初始化运算符:
operator = '+';
但是,如果你想选择一些操作来执行calc所以使用null初始化运算符,请在控制台上请求操作:
System.out.println("choose operator");
operator = scan.next().charAt(0);
现在您可以在开关盒上使用操作器而不会出现问题。
如果聊天类型不是在case语句中输入,您还会在默认情况下发送消息。