
多くの他のアプリケーションやプログラミング言語と同様に、Scalaも決定を取る条件文if-else
ステートメントを持っています。if
ステートメントの条件ブロックは、条件がTrueである場合に実行されます。そうでない場合は、else
の条件ブロックが実行されます(else
ステートメントが存在する場合のみ)。
一般的に、else
ステートメントには条件はありません。if
条件がFalseの場合にのみ実行されます。つまり、短く言えば、if-else
ステートメントはブール式によってTrue-False
の基盤で作動します。
if-else
ステートメントには、様々な種類があります:
– if文、
– if-else文、
– ネストされたif-else文、
– if-else-if-else文。
if-else
ステートメントの異なる種類を学び始める前に、以下の手順に従ってmacユーザー向けのScala環境を迅速にセットアップしてください。
注意:Javaがインストールされていることを確認してください。もしまだない場合は、ここで提供されている指示に従ってください。
– \$ brew update
– \$ brew install scala
– \$ brew install sbt
– \$ echo ‘-J-XX:+CMSClassUnloadingEnabled’ >>
/usr/local/etc/sbtopts
– $ echo ‘-J-Xmx2G’ >> /usr/local/etc/sbtopts
上記の手順が完了次第、ターミナルでscala
と入力してインストールを迅速にテストします。以下のような出力が表示されるはずです。

注意:このチュートリアルでは、vim
エディターでコードを記述し、ターミナルから実行します。
Scala if 文
if
文は、boolean
(真または偽)性質の式で構成されています。式が真になると、if
文の中のコードブロックが実行されます。偽の場合、if
文の終了後の最初の行のコードが実行されます。
if(boolean expression) { execute if boolean expression holds true }
まず、object
またはclass
という名前のscala_if
を定義します。そのオブジェクト内で、main
関数を設定し、主要なコード本体を記述します。整数変数x
を20という値で定義します。最後に、if
ブロックがコードの核心です。条件x<=20
で、x
の値が20なので、if
文の中のブロックが実行されます。
以下のコードをif.scala
という名前で保存してください。

上記のコードを実行するには、scala if.scala
とタイプするだけです。以下のような出力が表示されます。

Scala if-else 文
以下のコードでは、if-else
ステートメントが使用されています。これはif
ステートメントに似ており、boolean
(真偽)の性質を持つ式で構成されています。if
ステートメントが真であれば、if
ステートメント内のコードブロックが実行され、偽であればelse
ステートメント内のコードブロックが実行されます。
if(boolean expression) { execute if boolean expression holds true } else { execute block if boolean expression (if statement) holds false }
以下のコードでは、変数x
の値が20より大きいため、else
ステートメントの中のコードブロックが実行されます。
以下のコードをif-else.scala
という名前で保存してください。

このコードを実行するには、scala if-else.scala
と入力するだけで、以下のような出力が表示されます。

スカラのネストされたif-elseステートメント
通常のif
ステートメントにelse
ステートメントが続くように、ネストされたif-else
ステートメントも同様です。ネストされたif-elseでは、ifまたはelse-ifステートメントの中に別のifまたはelse-ifステートメントを使用できます。
次のセクションでは、else-ifステートメントについて見ていきます。
if(boolean expression 1) { execute block 1 if boolean expression 1 holds true** if(boolean expression 2) { execute block 2 if boolean expression 1 and 2 holds true } }
以下のコードは、4つの整数変数$v$、$x$、$y$、$z$を比較するためにnested-if
ステートメントを使用しており、最終的にはすべてのステートメントが正しい場合にターミナルに出力を表示します。
以下のコードをnested-if-else.scala
という名前で保存してください。


スカラのelse-ifステートメント
else-if
ステートメントはif-else
ステートメントより有効である。if-else
ステートメントではelse
の後にif
ステートメントが来ますが、else-if
ステートメントはそのものが单一のステートメントです。else-if
ステートメントを使用することで、さまざまな条件をテストする自由度があります。
しかし、else-if
ステートメントを使用する際に注意すべきルールがいくつかあります。
-
if文の後に
else-if
文が来ます。if
文にはelse-if
文を0個または複数個持つことができます。 -
同様に、
else
文はif
文とelse-if
文の後に来ます。if
文には0個または1個のelse
文を持つことができます。 -
一旦
else-if
ステートメントが成功すると、残りのelse-if
ステートメントやelse
ステートメントは考慮されず、直接飛ばされます。
if(boolean expression 1) { execute block 1 if boolean expression 1 holds true } else-if(boolean expression 2) { execute block 2 if boolean expression 2 holds true } else { execute this block if all of the above statements holds false }
また、恭喜として、チュートリアルを完了しました。
このチュートリアルは、Scalaの条件付きIF ELSE文を学ぶ初学者にとって良い出发点でした。
皆さんにとっての小さな练习として、Scalaでのelse-if
文について少しのコードを書いて、これらの文と他の文の違いを理解してみてください。
参照:
このチュートリアルに関する質問は、下のコメント欄でお聞きください。