我收到了编译器的错误。有人有任何线索吗?
import java.util.Scanner;
public class mathProg {
public static void main (String[] args) {
Scanner keyboard = new Scanner(System.in);
int num1, num2, numsum, numdif, numpro, numquo, numexp, cFunction;
String userName;
String functionName;
System.out.println("Welcome to the calculator!");
System.out.println("What is your name?");
userName = keyboard.nextLine();
System.out.println("Hello, " + userName + "! How can I help you?");
System.out.println("Operable commands are '1' (add), '2' (subtract), ");
System.out.println("'3' (multiply), '4' (divide), and '5' (exponent).");
cFunction = keyboard.nextInt();
switch(cFunction) {
case 1:
functionName = "addition";
break;
case 2:
functionName = "subtraction";
break;
case 3:
functionName = "multiplication";
break;
case 4:
functionName = "division";
break;
case 5:
functionName = "exponent";
break;
default:
System.out.println("Invalid command.");
};
System.out.println("You selected " + functionName + ". What number would you like to start with?");
};
};
错误是这样的:
找到1个错误:
文件:/ Volumes / USB20FD /计算机科学/ Java / Labs / mathProg / mathProg.java [line:45]
错误:本地变量functionName可能尚未初始化
我正在使用DrJava作为我的IDE和Eclipse 0.A48编译器。这是一个快速的实验室,所以所有的帮助将不胜感激!
答案 0 :(得分:0)
将functionName设置为空字符串:
String functionName = "";
如果达到默认情况,functionName
将永远不会有值。
答案 1 :(得分:0)
更改
String functionName;
到
String functionName = null;
答案 2 :(得分:0)
在default
情况下,functionName
未初始化,但必须在首次使用之前对其进行初始化。编译器必须确保在使用之前在所有执行路径中初始化所有局部变量。
将其初始化为switch
之前的内容,在default
案例中初始化,或在Exception
案例中抛出default
。