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の動画を作って再生させ続けるぜぃ」
新規登録で充実の読書を
- マイページ
- 読書の状況から作品を自動で分類して簡単に管理できる
- 小説の未読話数がひと目でわかり前回の続きから読める
- フォローしたユーザーの活動を追える
- 通知
- 小説の更新や作者の新作の情報を受け取れる
- 閲覧履歴
- 以前読んだ小説が一覧で見つけやすい
アカウントをお持ちの方はログイン
ビューワー設定
文字サイズ
背景色
フォント
組み方向
機能をオンにすると、画面の下部をタップする度に自動的にスクロールして読み進められます。
応援すると応援コメントも書けます