字符串变量初始化错误

时间:2013-12-11 23:23:28

标签: java drjava

我收到了编译器的错误。有人有任何线索吗?

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编译器。这是一个快速的实验室,所以所有的帮助将不胜感激!

3 个答案:

答案 0 :(得分:0)

将functionName设置为空字符串:

String functionName = "";

如果达到默认情况,functionName将永远不会有值。

答案 1 :(得分:0)

更改

String functionName;

String functionName = null;

答案 2 :(得分:0)

default情况下,functionName未初始化,但必须在首次使用之前对其进行初始化。编译器必须确保在使用之前在所有执行路径中初始化所有局部变量。

将其初始化为switch之前的内容,在default案例中初始化,或在Exception案例中抛出default