Scalaの制御構文(Control Structures)は、プログラムの実行の流れを制御するために使用される文法要素です。ScalaはJavaと同様に命令型の構文を持ちながらも、関数型言語の特徴も備えており、制御構文も柔軟で表現力豊かです。以下ではScalaにおける代表的な制御構文について詳しく説明します。
1. 条件分岐 (if, else)
if, else)Scalaのif文は式(expression)として扱われ、値を返します。
上記のif文は値を返し、resultに文字列が代入されます。ブロック内に複数の文を書くこともできます。
2. パターンマッチ (match式)
match式)ScalaではJavaのswitch文に代わる強力な構文としてmatchが使われます。これは式としても使われ、値を返します。
matchはパターンマッチングの機能を活かし、非常に強力で柔軟な条件分岐を実現します。
3. 繰り返し構文
a. whileループ
whileループ条件がtrueの間、繰り返します。
b. do-whileループ
do-whileループ少なくとも1回は実行されるループです。
c. for式(内包表記にも使える)
for式(内包表記にも使える)Scalaのforは非常に強力で、イテレータを使ってループ処理を行い、場合によっては値を生成できます。
toは1から5まで(両端含む)、untilは5未満までを意味します。
複数のジェネレータやフィルタも使用可能です。
値を返すfor式も書けます(yieldを使う)。
4. 早期終了 (return)
return)Scalaでは関数の戻り値は最後の式の評価値ですが、returnを使って明示的に戻すこともできます。
ただし、関数型プログラミングのスタイルではreturnの使用は最小限にすることが推奨されます。
5. 例外処理 (try, catch, finally)
try, catch, finally)例外を扱う構文もあります。
catchは複数のcaseを使ってマッチング処理を行います。
まとめ
| 構文 | 特徴 |
|---|---|
if/else |
値を返す式として使用可能 |
match |
パターンマッチングによる柔軟な分岐 |
while/do |
条件によるループ処理 |
for/yield |
内包表記によるイテレーションと値生成 |
return |
関数からの明示的な戻り値(推奨されない場合もあり) |
try/catch |
例外処理とエラーハンドリング |
Scalaの制御構文は、命令型プログラミングの直感的な書き方に加えて、関数型のスタイルとも親和性が高い構成になっています。
特にifやmatchが「式」として扱える点は、Scala特有の重要な特徴の一つです。
生成日:2025/05/04