0

3 つのブール値を比較し、最初に true になった値を表示します。

3 つのブール値を比較し、最初の真の値を表示するプログラムを作成しようとしています。3 つの単語の長さを比較していますが、最も長い単語が表示されます。表示されるエラーは、else タグが機能していないことです。コードを見てください。

//Check which word is bigger
    if (len1 > len2)
        word1bt2 = true;

    if (len2 > len3)
        word2bt3 = true;

    if (len1 > len3)
        word1bt3 = true;

    //Check which word is the longest
    if (word1bt2 == true && word1bt3 == true);
        System.out.println(wor1);
        else if (word2bt3 == true);
        System.out.println(wor2);
        else System.out.println(wor3);

word1bt2、word2bt3、および word1bt3 にブール値を設定しました。Eclipse では、上記のコードの else の下で構文エラーが発生します。どんな助けでも素晴らしいでしょう!

4

5 に答える 5

3
if (word1bt2 == true && word1bt3 == true);

間違っています。セミコロンを削除する必要があります。

if (word1bt2 == true && word1bt3 == true)

elsesも同じ


else (word2bt3 == true);

それも間違っている、そうあるべきだ

else if (word2bt3 == true)

補足:ブール値は条件として使用できるため、ifステートメントは

if (word1bt2 && word1bt3) // The same as if (word1bt2 == true && word1bt3 == true)
于 2013-09-09T12:49:13.803 に答える
2

3つのブール値を比較するには?

しないでください!

3 つの変数を比較する必要がある場合は、任意の数の変数をすぐに処理することもできます。ぶらぶらしていても意味がありません。すぐに適切に実行してください。

public String longest(Iterator<String> i) {
  // Walk the iterator.
  String longest = i.hasNext() ? i.next() : null;
  while (i.hasNext()) {
    String next = i.next();
    if (next.length() > longest.length()) {
      longest = next;
    }
  }
  return longest;
}

public String longest(Iterable<String> i) {
  // Walk the iterator.
  return longest(i.iterator());
}

public String longest(String... ss) {
  // An array is iterable.
  return longest(ss);
}
于 2013-09-09T13:02:47.820 に答える
1

を取り外し、;ブラケットで変更します{}

if (word1bt2 && word1bt3) {
      System.out.println(wor1);
} else if (word2bt3) {
      System.out.println(wor2);
} else {
      System.out.println(wor3);
}
于 2013-09-09T12:49:11.257 に答える