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)等等。Strings==in进行比较Java不会像您认为的那样。

您实际上也没有在morseDig任何地方接受用户输入和设置。您的for循环没有按照您的想法执行,因为morse.length()正在返回0并且您甚至没有执行一次正文。

于 2013-11-03T00:50:29.510 回答