switch 文のプログラムをif else文のプログラムで書き表してみましょう 

ソーラー 「プログラムらしくなってきたね。


では~


switch文をif else文で表してみることにチャレンジしてみよう。


switch文とif else文はなんだか似ていると思ったんだ。


まずは


switch文の用いられたプログラムをご覧ください

👇

#include <iostream>


using namespace std;


int main() {


int a;


cin>>a;


switch(a){


case 1:

cout<<"おはようございます\n";

break;


case 2:

cout<<"こんにちは\n";

break;


case 3:

cout<<"こんばんは\n";

break;


default:

cout<<"24時間営業です\n";

break;


}


return 0;

}


ソーラー「このswitch 文を


数値1を代入すると


おはようございます


を表示し


そう(数値1)でなければ


数値2を代入すると


こんにちは


を表示し


そう(数値1、数値2)でなければ


数値3を代入すると


こんばんは


を表示し


そう(数値1、数値2、数値3)でなければ


24時間営業です


を表示する


という流れで


if else文で表現することにすると・・・\(^o^)/」



#include <iostream>


using namespace std;


int main() {


int a;


cin>>a;


if(a==1)

cout<<"おはようございます\n";


else if(a==2)

cout<<"こんにちは\n";


else if(a==3)

cout<<"こんばんは\n";


else

cout<<"24時間営業です\n";


return 0;


}


👆


ソーラー「こんなふうになるかな。



やったね switch 文をこんなに間単に


if else (if)文に変換できちゃったよ。」




マックス 「やったな ソーラー」




ソーラー 「意外と簡単に変換できたね。




switch文の一番後ろの


default:

cout<<"24時間営業です\n";と




if else (if)文の一番後ろの


else

cout<<"24時間営業です\n";


が、どの命令文も実行されないときに


実行されるという対応関係にあるね。


switch文がピンポイントで命令文を実行するのに対し


if else (if)文は上から順順に命令文を実行してる。


if else (if)文はどこかで else (if)文が実行されると


それ以下の命令文は実行されないんだよね。


今のプログラムでいうと


if(a==1)

cout<<"おはようございます\n";

が実行されると


それ以下の代わりの命令文


else if(a==2)

cout<<"こんにちは\n";


else if(a==3)

cout<<"こんばんは\n";


else

cout<<"24時間営業です\n";


は実行されないんだ。


だから 次のような


switch文のプログラムの場合のように→」


#include <iostream>


using namespace std;


int main() {


int a;


cin>>a;


switch (a){


case 1:

cout>>"おはようございます\n";

break;


case 2:

cout>>"こんにちは\n";



case 3:

cout>>"こんばんは\n";

break;


default:

cout>>"24時間営業です\n";

break;


}

return 0;

}



ソーラー「→


case 2:

cout>>"こんにちは\n";

の後ろの


break;が取り除かれているswitch 文のプログラムを


(このswitch 文では


数値データ2をキーボードから打ち込めば


case 2:

cout>>"こんにちは\n";


のあとにbreak;がないので


case 2:

cout>>"こんにちは\n";


に続いて


case 3:

cout>>"こんばんは\n";

break;


も実行されます


数値データ3を打ち込めば


case 3:の後に続く命令文だけが実行されます)



if else文に変換するときには


次のプログラムのように→」


#include <iostream>


using namespace std;


int main() {


int a;


cin >> a;


if (a == 1)

cout<< "おはようございます\n";


else if (a == 2) {

cout << "こんにちは\n";

cout << "こんばんは\n";

}


else if (a == 3)

cout << "こんばんは\n";


else

cout << "24時間営業です\n";


return 0;


}


ソーラー「→


else if(a==2) { }の{ }のなかに


case 2:の後に続く命令文


cout<<"こんにちは\n";



case 3: の後に続く続く命令文


cout<<"こんばんは\n";



ひとつにまとめて記入しないといけないね。


ここらへんが


switch文とif else(if)文の違うところかな


switch文では


選んだcase :に続く命令文の下の break;をとりのぞくと


その次のcase :に続く命令文も実行されるのに対し


if else(if)文では


else(if)文が実行されると


それ以下につづく代わりのelse命令文は実行されないからね。」


マックス 「すみませ~ん ここは24時間営業ですか?」


ソーラー 「24時間営業ですよ(^^)」


マックス 「この動画をみたいんですが・・・」


ソーラー 


「そ~んなときはこの break;文をとりのぞいたプログラム


#include <iostream>


using namespace std;


int main() {


int a;


cin>>a;


switch (a){


case 1:

cout<<"動画1を再生する\n";


case 2:

cout<<"動画2を再生する\n";


case 3:

cout<<"動画3を再生する\n";


case 4:

cout<<"動画4を再生する\n";


case 5:

cout<<"動画5を再生する\n";


case 6:

cout<<"動画6を再生する\n";


default:

cout<<"動画7を再生する\n";


break;


}


return 0;


}


を設定しておけば


マックスが


マックスがキーボードから1を入力して


case 1:

cout<<"動画1を再生する\n";


が選択されると


自動的に次々と

case 2:

case 3:

case 4:

case 5:

case 6:

default;


につづく命令文が実行されるってわけ。


ビルド実行結果は


動画1を再生する

動画2を再生する

動画3を再生する

動画4を再生する

動画5を再生する

動画6を再生する

動画7を再生する


となるね。


break;



どのcase:


につづく命令文の後にも

記述されていないので


default:


につづく命令文

cout<<"動画7を再生する\n";


まで実行されるのがポイントだね。


コマンドプロンプト画面に表示されているのは


動画1を再生する

動画2を再生する

動画3を再生する

動画4を再生する

動画5を再生する

動画6を再生する

動画7を再生する


の文字だけだけど


動画1を再生する

動画2を再生する

動画3を再生する

動画4を再生する

動画5を再生する

動画6を再生する

動画7を再生する


が実際に動画を再生させるということになっていれば


実際に

動画1を再生する

動画2を再生する

動画3を再生する

動画4を再生する

動画5を再生する

動画6を再生する

動画7を再生する

ということが行われるわけなんだ。


もし


マックスがキーボードから5を入力して


case 5:

cout<<"動画5を再生する\n";


が選択されると


自動的に次々と


case 5:

case 6:

default;


につづく命令文が実行されるってわけ。


ビルド実行結果は


動画5を再生する

動画6を再生する

動画7を再生する


となるね。


break;



どのcase:


につづく命令文の後にも

記述されていないので


default:


につづく命令文

cout<<"動画7を再生する\n";


まで実行されるのがポイントだね。


コマンドプロンプト画面に表示されているのは


動画5を再生する

動画6を再生する

動画7を再生する


の文字だけだけど


動画5を再生する

動画6を再生する

動画7を再生する


が実際に動画を再生させるということになっていれば


実際に


動画5を再生する

動画6を再生する

動画7を再生する

ということが行われるわけなんだ。



これはYoutubeの動画システムにつかえそうだね。」



マックス


「全話 漁とcatの動画を作って再生させ続けるぜぃ」

  • Twitterで共有
  • Facebookで共有
  • はてなブックマークでブックマーク

作者を応援しよう!

ハートをクリックで、簡単に応援の気持ちを伝えられます。(ログインが必要です)

応援したユーザー

応援すると応援コメントも書けます

新規登録で充実の読書を

マイページ
読書の状況から作品を自動で分類して簡単に管理できる
小説の未読話数がひと目でわかり前回の続きから読める
フォローしたユーザーの活動を追える
通知
小説の更新や作者の新作の情報を受け取れる
閲覧履歴
以前読んだ小説が一覧で見つけやすい
新規ユーザー登録無料

アカウントをお持ちの方はログイン

カクヨムで可能な読書体験をくわしく知る