この章ではcase文について説明します。
case文はif文と同じ機能があります。
では例をみてみましょう。
この基本構文の意味は対象のオブジェクトが値 1であるならば実行文1を、対象のオブジェクトが値2であるならば実行文2を、その他は実行文 3を実行すると言う意味です。
この例の結果は以下の通りです。 先ほどのcase文をif文で書き換えると以下の通りです。
whenの後の値は
のように複数書いても問題ありませんが、その場合にはカンマで区切ってください。
では例をみてみましょう。
animal の値の
と以下のwhenの条件部分が一致しますので
が実行されます。
結果は以下の通りです。
では次の例を見てみましょう。
この例は配列のすべての要素に対して、その要素がどの範疇にあるのかをcase文でチェックしています。
配列の要素が1つずつiにセットされ、その値がどの場所に収まっているかをwhenで確認しています。
each doについては配列の章で説明しましたので、忘れた方は見直してください。
「1..30」の間に「..」がありますが、これを範囲演算子といいます。
範囲演算子はと言う形式で書きますので、この例では1から30までという意味になります。
文字列で書く場合はという構文で書きます。
例えばと、書きます。
結果は以下の通りです。 範囲の作成方法は他にもあり、以下の構文で書くことが出来ます。これはRangeクラスのオブジェクトですが、クラスについては「クラスについて知ろう」で説明します。
exclude_endをtrueで指定すると終端の数値を含みません。つまり、
と書きますと30は含まれません。
では例をみてみましょう。 結果は以下の通りです。
タグ: case
switch文について知ろう
この章ではswitch文について説明します。
if文については説明しましたが、switch文もifと同じようなことを行うことが出来ます。
switch文はカッコ()の中に条件判定させる式を記述し、比較したい値をの値の箇所に記述します。
(式)の値が値1であれば、「式が値1と同じ時に実行される処理文;」を実行して、値2であれば、「式が値2と同じ時に実行される処理文;」を実行して、値3であれば、「式が値3と同じ時に実行される処理文;」を実行して、どれにも当てはまらない時にdefaultの部分の「式がいずれの値にも違う時の処理文;」の所を実行します。
default:以下は必要がなければ省略することができますが何も一致するものが無かった場合にswitch文は何も行わず終了します。
の値が一致したときには
で抜けることができます(breakは付けなくてもエラーになりませんが、付けない時はどうなるかを後ほど説明します)。
breakは一連の流れを強制的に中止したい時に使うと覚えておいてください。
つまり、switch文の場合はswitchのブロックを抜けることになります。
では例をみてみましょう。 先ほどのswitch文をif文で書き直してみると以下のようになります。
次にbreak文が記述されていなかったらどうなるのかを説明します。
通常はswitch の(式)がcaseの値に一致した場合、それ以降の処理をbreakの箇所まで実行していきますが、caseの値に一致したのに関わらずbreakが無い場合は次のbreak もしくはdefaultの箇所まで処理が実行されます。
aの値が1ですので、breakがあればを実行して処理が終わるはずのところ、breakが無いがために、そこで止まらず抜けて行ってしまいます。
そして、最後のdefaultも実行されて処理を終了します。
結果はです。
では次の例を見てみましょう。 caseの値を複数設置して同じ処理文を実行させることが出来ます。
今までのcaseは1つずつでしたが、上の例のように複数まとめて設置することが出来ます。
式の値が複数のcaseの中のどれか1つのcaseの値と合致した場合はその処理文を実行してbreakで抜けます。 補足ですが、C言語ではswitchの
の値の部分には文字列は使えなかったですが、JavaScriptでは以下の例のように文字列も使用できます。
また、C言語では出来なかった「case b+c:」のような変数を使った式も使用できます。
switch文について知ろう
この章ではswitch文について説明します。
switch文はifと同じで条件分岐を行うことが出来ます。
switchはの式の部分に条件判定させる式を記述し、caseでは判定する値を記述します。
下の基本構文を見てください。 「switch (式 )」の式の値と「caseの値」が一致したときにはcaseからbreakまでのプログラムを実行します。
breakは一連の流れを強制的に中止したい時に使用します。
つまり、switch文でbreakを使うとswitchのブロックを抜けることになります。
ブロックとは「{」から「}」までの内容です。
ここで、注意してほしい事は「switch (式 )」の中の「式」は整数型の変数や式もしくはchar型の変数などを入れても大丈夫ですが、doubleや floatの変数や式、そしては入れることはできません。
では実際にswitch文の例を見てみましょう。 numberの値が1の場合は
以下の
を実行します。
numberの値が2の場合は以下の
を実行します。
numberの値が3の場合は以下の
を実行します。
numberの値が1、2、3以外の場合は以下の
を実行します。
結果はnumberは 3でと一致しますので、「3です」が出力されます。
先ほどのswitch文をif文で書き換えると以下のようになります。
switch文では文字列も判定することが出来ますので例をみてみましょう。
文字列の判定なのでcaseの値をダブルクォートで囲んでください。
switch文を知ろう
この章ではswitch文について説明します。
if文と同じく条件分岐できるのがswitch文です。
switchのカッコ()の中の式が、caseの値と一致するとbreakまでの文が実行されます。
次にbreakの意味について説明します。
breakはブロックを抜けるために存在します。
switch文の場合はbreakでswitchのブロックを抜けることができます。
つまり、式の値がcaseのいずれかの値と一致すれば文を実行して、breakにより抜けます。
ではswitch文の例を見てみましょう
例えば3を入力すると以下のようになります。
先ほどのswitch文と同じことをif文で表すと以下のようになります。
次は仮にbreakが記述されていなかったらどうなるか説明します。 caseの値に一致した場合、それ以降の処理をbreakの箇所まで実行していきますが、 caseの値に一致したのにも関わらずbreakが無いと次のbreakまで もしくはbreakがどこにもなければdefaultの箇所まで処理が実行されます。
仮に上の例で入力したaの値が0だとすると、0はの値と一致するので
を実行して処理が終わるはずのところ、breakが無いがために、そこで止まらず抜けて行ってしまいます。
さらに「case 1:」にもbreakが無いので、そこの処理も実行されて、結局は最後のdefaultまで実行されてしまいます。
次の例を見てみましょう。
今までのcase文は1つずつでしたが、上の例のようにcase文を複数まとめて設置することができます。
switchの条件文が複数のcaseの中でどれか1つのcaseの値と合致した場合は、そこの処理文を実行してbreakで抜けます。