0

このプログラムから出力が得られない理由を誰かが説明できますか? for ループと if ステートメントを使用して数字用のモールス符号トランスレータを作成しようとしていますが、何も表示されず、翻訳したいモールス符号を入力します。

import acm.program.*;

public class MorseDecoder extends ConsoleProgram
{
public void run()
{
    String morseDig = ""; 
    int digit = 0;
    String morse = readLine("Please enter the morse code: ");

    for (int i = 0; i == morse.length(); i += 5)
    {
        if (morseDig == ".----"){
            digit = 1;
        }
            else if(morseDig == "..---"){
                digit = 2;
                System.out.println(digit);
            }
            else if(morseDig == "...--"){
                digit = 3;
            }
            else if(morseDig == "....-"){
                digit = 4;
            }
            else if(morseDig == "....."){
                digit = 5;
            }
            else if(morseDig == "-...."){
                digit = 6;
            }
            else if(morseDig == "--..."){
                digit = 7;
            }    
            else if(morseDig == "---.."){
                digit = 8;
            }
            else if(morseDig == "----."){
                digit = 9;
            }
            else if(morseDig == "-----"){
                digit = 0;
            }
                else{
                    println("NaN");
                }
    }
}

//~ Methods ...............................................................

}

最後の NaN は、モールス符号に数値変換がない場合に使用されます。

4

1 に答える 1

2

".....".equals(morseDig)などなど。inとの比較は、あなたが思っていることStringsをしません。==Java

morseDigまた、実際にはユーザー入力と設定をどこにも取っていません。あなたのループはあなたがfor思っていることをしていません.morse.length()0

于 2013-11-03T00:50:29.510 に答える