私は絶対に正常に動作し、私はpostからもらったswitch文を使用して、このコードを持っている:switch文では、すべてのケースがなぜ実行されていますか?
String getOrdinal(final int day) {
if (day >= 11 && day <= 13) {
return "th";
}
switch (day % 10) {
case 1: return "st";
case 2: return "nd";
case 3: return "rd";
default: return "th";
}
}
を私はこのようなものに変更した場合ケース1以外のすべてのケースがにつれて、それは、壊れます実行:私は「2」に渡すとき
static String getOrdinal(final int day) {
StringBuilder ordinalBuilder = new StringBuilder();
ordinalBuilder.append("<sup>");
if (day >= 11 && day <= 13) {
ordinalBuilder.append("th") ;
}
switch (day % 10) {
case 1: ordinalBuilder.append("st");
case 2: ordinalBuilder.append("nd");
case 3: ordinalBuilder.append("rd");
default: ordinalBuilder.append("th");
}
ordinalBuilder.append("</sup>");
return ordinalBuilder.toString();
}
これは2<sup>ndrdth</sup>
を印刷し、私はバッファにビルダーが、同じ応答を変更しようとした。これはバグか、私はいくつかのミスを作っていますだろうか?
switch文をインライン展開しても何も得られないので、 'getOrdinal'メソッドを別々にしておき、あなたのコードでそれを呼び出さなければなりません。コードに11,12、または13を渡してみてください。あなたが作成した別のバグがあります。 –
@TimBenderに+1を与えることができたらいいですか?この質問は、カーゴ・カルト・プログラミングの定義です。 – CanSpice
R T F M。 。 。 。 。 – dokaspar