-1

結果は、単語「END」より大きい文字列でなければなりません。これが私がこれまで行ってきたことですが、うまくいきません。

System.out.println("Write a word. The word "END" terminates the program");

String word = sc.nextLine();

if(word.equals("END")){
    System.out.println("Nothing has been typed");
}

while(word!="END"){
    if(word.compareTo("END") > 0){
        System.out.println(word+" is greater than END");
    }
}
4

3 に答える 3

1

辞書式の比較 (つまり、アルファベット順でどちらの単語が早いか) は正しいです。ただし、ループ条件は正しくありません。

while(word!="END")

常に真になります。に変更する必要があります

while(!"END".equals(word))

その場合、ループは word に到達すると停止しますEND

大文字と小文字を区別しない比較が必要な場合は、compareToIgnoreCase代わりにとcompareToを使用します。equalsIgnoreCaseequals

于 2013-02-26T16:32:00.620 に答える
0

while(!"END".equals(word))ループ条件が正しくありません

于 2015-02-19T17:06:52.427 に答える
0
while(word!="END") is always true because it check object reference .You should try
while(!"END".equals(word)) where object content is checked
于 2013-02-27T15:17:36.350 に答える