1

私は Java プログラミングを学んでいる比較的新しい学生ですが、助けを求めたいと思います。コードで受け取ったエラーは、「変数 romanNumeral が初期化されていない可能性があります」というものです。

このプログラムの目的は、ユーザーが 1 ~ 39 の数字を入力し、適切なローマ数字の値をダイアログ ボックスに表示することです。アプリケーションでコードをコンパイルできないため、この問題の解決策をまだ見つけていないため、コードはまだ完全ではありません。

コードは次のとおりです。

public class exercise4 extends Actor
{
    int userNum;
    public void act() 
    {
        intInput(userNum);
    }    

    public String intInput(int userNum)
    {
        String userInput;
        String romanNumeral;

        userInput = JOptionPane.showInputDialog("Please enter a number to be converted into Roman Numerals.");
        userNum = Integer.parseInt(userInput);

        switch(userNum)
        {
           case 1:  romanNumeral = "I";
                    break;

           case 2:  romanNumeral = "II";
                    break;

           case 3:  romanNumeral = "III";
                    break;

           case 4:  romanNumeral = "IV";
                    break;

           case 5:  romanNumeral = "V";
                    break;

           case 6:  romanNumeral = "VI";
                    break;

           case 7:  romanNumeral = "VII";
                    break;

           case 8:  romanNumeral = "VIII";
                    break;

           case 9:  romanNumeral = "IX";
                    break;

           case 10: romanNumeral = "X";
                    break;

           case 11: romanNumeral = "XI";
                    break;

           case 12: romanNumeral = "XII";
                    break;

           case 13: romanNumeral = "XIII";
                    break;

           case 14: romanNumeral = "XIV";
                    break;

           case 15: romanNumeral = "XV";
                    break;

           case 16: romanNumeral = "XVI";
                    break;

           case 17: romanNumeral = "XVII";
                    break;

           case 18: romanNumeral = "XVIII";
                    break;         

           case 19: romanNumeral = "XIX";
                    break;        

           case 20: romanNumeral = "XX";
                    break;

           case 21: romanNumeral = "XXI";
                    break;

           case 22: romanNumeral = "XXII";
                    break;

           case 23: romanNumeral = "XXIII";
                    break;         

           case 24: romanNumeral = "XXIV";
                    break;

           case 25: romanNumeral = "XXV";
                    break;

           case 26: romanNumeral = "XXVI";
                    break;

           case 27: romanNumeral = "XXVII";
                    break;

           case 28: romanNumeral = "XXVIII";
                    break;       

           case 29: romanNumeral = "XXIX";
                    break;

           case 30: romanNumeral = "XXX";
                    break;

           case 31: romanNumeral = "XXXI";
                    break;

           case 32: romanNumeral = "XXXII";
                    break;

           case 33: romanNumeral = "XXXIII";
                    break;

           case 34: romanNumeral = "XXXIV";
                    break;

           case 35: romanNumeral = "XXXV";
                    break;

           case 36: romanNumeral = "XXXVI";
                    break;

           case 37: romanNumeral = "XXXVII";
                    break;

           case 38: romanNumeral = "XXXVIII";
                    break;

           case 39: romanNumeral = "XXXIX";
                    break;
        }

        return romanNumeral;
    }
}
4

7 に答える 7

2

defaultスイッチケースに使用。Java では、変数を使用する前に変数を初期化する必要があります。コードに大文字と小文字が一致しない値がある場合、変数は初期化されません。

于 2016-04-02T06:37:36.283 に答える
2

defaultケースを switch ステートメントに追加して、エラー値に設定します。スイッチがそのどれにも一致せず、romanNumeral が返される前に設定されない可能性があるため、その警告が表示されます。

于 2016-04-02T06:37:44.820 に答える
1

String romanNumeralメモリ位置への参照を作成しますが、初期化はしません (値を与えません)。usernumに値が設定されない の値を指定できるため、romanNumeralエラーが発生します。
これを避けるために、デフォルトのケースを追加できます。

于 2016-04-02T06:38:45.323 に答える