出力結果に納得がいかない。
以下のコードを実行するとorange apple apple otherと表示される。
どのような原理でコードが動いているのか知りたい。
該当のソースコード
java
1public class Main { 2 public static void main(String[] args) { 3 String[] ary = { "orange", "Apple", "Banana" }; 4 for (String str : ary) { 5 switch (str) { 6 case "orange": 7 System.out.println("Orange"); 8 case "Apple": 9 System.out.println("Apple"); 10 break; 11 default: 12 System.out.println("other"); 13 } 14 } 15 } 16}
試した事
java
1public class Main { 2 public static void main(String[] args) { 3 String[] ary = { "orange", "Apple", "Banana" }; 4 for (String str : ary) { 5 switch (str) { 6 case "orange": 7 System.out.println("Orange"); 8 case "Apple": 9 System.out.println("Apple"); 10 // break; 11 default: 12 System.out.println("other"); 13 } 14 } 15 } 16}
break文をコメントアウトして処理を確認した。
orange apple other apple other otherと表示された。
不明点
①break文を挟まない事でなぜ6つ、文字列が表示されたのか。
②1回目のotherが表示された後、なぜorangeがスキップされてしまうのか。
③1回目のotherが表示された後、なぜ再び処理が繰り返されてしまうのか。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/08/21 14:31