0

コンパイラからエラーが発生しました。誰にも手がかりはありますか?

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/Computer Science/Java/Labs/mathProg/mathProg.java [行: 45]

エラー: ローカル変数 functionName が初期化されていない可能性があります

DrJava を IDE として使用し、Eclipse 0.A48 コンパイラーを使用しています。これは簡単なクラス ラボのためのものです。

4

3 に答える 3

0

functionName を空の文字列に設定します。

String functionName = "";

デフォルトのケースに達した場合functionName、値を持つ機会はありません。

于 2013-12-11T23:24:55.420 に答える
0

変化する

String functionName;

String functionName = null;
于 2013-12-11T23:24:55.927 に答える
0

defaultケースの下でfunctionNameは初期化されていませんが、初めて使用する前に初期化する必要があります。コンパイラは、すべてのローカル変数が使用される前に、すべての実行パスで初期化されていることを確認する必要があります。

の前にswitch初期化するか、ケースで初期化するdefaultか、ケースで をスローしExceptionますdefault

于 2013-12-11T23:24:58.300 に答える