Quantcast
Channel: 初心者タグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 21081

初心者レベルでも気づく、JavaとGoのswitch文の記述の違い

$
0
0

基本的なswitch文の記法

Java
switchrank{case1:System.out.println("金メダル!");break;case2:System.out.println("銀メダル!");break;case3:System.out.println("銅メダル!");break;default:System.out.println("メダルを獲得できませんでした");break;}
Go
switchrank{case1:println("金メダル!")case2:println("銀メダル!")case3:println("銅メダル!")default:println("メダルを獲得できませんでした")}

Javaのswitch文の場合、暗黙的にfall-throughであるため、fall-throughされたくない場合はbreak文を明示的に書く必要があります。

一方、Goのswitch文は、暗黙的にfall-throughでなく、明示的なbreak文は必要ありません。

複数条件のラベルを含むswitch

Java
switchn{case0:System.out.println("凶です");break;case1:case2:System.out.println("吉です");break;case3:case4:System.out.println("中吉です");break;case5:System.out.println("大吉です");break;}
Go
switchn{case0:println("凶です")case1,2:println("吉です")case3,4:println("中吉です")case5:println("大吉です")}

Goのswitch文では、caseにおいてカンマ区切りで複数条件を一度に指定することができます。

一方(JDK11までの)Javaのswitch文では、「カンマ区切りで複数条件を一度に指定する」という記法は使えません。上記ソースコードのように、fall-throughを使って書く必要があります。

結論

同じC-like languagesであっても、特にswitch文の記法については、言語によって少なからぬ差が出ますね。


Viewing all articles
Browse latest Browse all 21081

Trending Articles