条件分岐if(もし~ならば、△である)

使い方

ifコマンドは条件分岐を行う機能があります。条件分岐とは、もし〜ならば、〇〇である。ということができます。

ifを直訳すると、「もし」。コマンドスクリプトでもよくifを使って、作業の分岐を行います。

よくわからないと思うので、実際にやってみましょう。

例えば、「1と1が同じならば、良とする。」という構文を作ります。

コード

if 1==1 echo 良

コマンドスクリプトの結果はこちらです。「良」という結果が得られました。

少しわかりづらいと思うので、下記フロー図を参考にしてください。コマンド文の「if 1==1」が条件で、「1と1が同じならば」と和訳できます。

条件の後に分岐していきますが、正しければ処理を行います。(赤矢印)正しくなければ、何も処理されません。

今回は1と1は同じなので、赤矢印の処理となります。

次に条件が正しくない、誤りの場合の処理についてみていきます。

コード

if 1==2 echo 良

今回のコードは和訳すると「もし、1と2が同じければ、良と表示する。」という意味になります。もちろん、同じでないので、コマンドスクリプトの結果はこちら。

何も表示されません。後述しますが、条件が正しくないときの処理内容がこのコードに何も記述されていません。このため、コマンドスクリプトの処理が空白となります。

条件が誤りの時の処理を追加(else)

先程のコマンドは条件の誤り後の処理の内容がないため、処理内容が何も表示されませんでした。条件が誤り、等しくないときにも、処理をさせる方法は、elseを追加します。

コード

if 1==2 (echo 良し)else (echo 間違い)

コマンドスクリプトの結果はこちら。条件分岐で誤りの内容なので、elseの後の結果になります。

コードのif 1==2 (echo 良し)else (echo 間違い)を和訳すると、「もし、1と2が同じならば、良しと表示する。そうでなければ間違いと表示する」となります。図示すると、下記のようなイメージになります。

条件分岐を複数作る

条件分岐を複数作る時はif 条件 正の場合の処理の後にelse ifをつけます。

例えば、映画館で曜日別に割引があるとします。曜日別のやり引きの内容を表示させます。

例題1

もし、今日が水曜日ならシールバースデーです。それとも、もし、木曜日なら、女性割引デーです。それ以外は割引がありません。

この例題1を箇条書きにして表します。

・水曜日▶︎シルバーズデー

・木曜日▶︎女性割引デー

・それ以外▶︎割引なし

コード1

set 今日=水曜日

if %今日%==水曜日 (echo シールバースデー) else if %今日%==木曜日 (echo 女性デー) else (echo 割引はありません)

set 今日=木曜日

if %今日%==水曜日 (echo シールバースデー) else if %今日%==木曜日 (echo 女性デー) else (echo 割引はありません)

set 今日=金曜日

if %今日%==水曜日 (echo シールバースデー) else if %今日%==木曜日 (echo 女性デー) else (echo 割引はありません)

このコードをコマンドスクリプトで表示させます。

結果を見ると、わかりますが、set関数で定義した曜日によって、割引の内容が表示されています。下記の図を見ると視覚的にわかります。

このようにelse ifを複数使用すると、条件分岐を複数作ることが可能になります。

コメント

タイトルとURLをコピーしました