異なる
fizzString("fooo") → "Fizz"
fizzString("b") → "Buzz"
fizzString("fb") → "FizzBuzz"
public String fizzString(String str) {
boolean fizz = str.charAt(0) == 'f';
boolean buzz = str.charAt(str.length() - 1) == 'b';
if (fizz && buzz) return "FizzBuzz";
if (fizz) return "Fizz";
if (buzz) return "Buzz";
return str;
}
return文は、プロセスを終了し、方法を残します。あなたがメソッドの最後に
if (fizz && buzz) return "FizzBuzz";
を入れた場合
fizz
と
buzz
両方が
true
をしている場合は、最初の文はすでに真となり、「フィズ」を返されるので、それは、到達することはできません。次の2つのステートメントは評価されません。
あなたが望むのは最初のバージョンです。まず両方が真であるかどうか、そしてどちらかが真であるかどうかを確認する必要があります。 2番目のケースでは、最後のステートメントは実際に到達できず、コード内で決して実行されるべきではありません。
あなたは文が交換可能になりたい場合は、次のようにそれらを変更することができます。
if (fizz && buzz) return "FizzBuzz";
if (fizz && !buzz) return "Fizz";
if (!fizz && buzz) return "Buzz";
strパラメータは何ですか? –