■C++を学ぼう!
「C++を学ぼう!」では、C++の初心者をターゲットにC++言語を体系的に学べるようにサイトを構築しています。
管理人もC++を学びながら作っていますので、分かり難い点などあればご指摘下さい。

▼スポンサードリンク
■メニュー

(C)あいねこの館

文章などの改変・利用は禁止します
条件分岐

if文を使おう!
if分を用いると条件分岐が出来ます。例えば、所持金が100円ならジュースは買えません。110円ならジュースは購入できますと、 所持金によって条件が変更されることになります。



上記をプログラムで表すと以下のようになります。
#include <iostream>
using namespace std;

int main(){

	//ジュースが購入できない場合
	int money1=100;
	
	if(money1>=110){
		cout << "ジュースが購入できます!" <<endl;
	}
	else{
		cout << "ジュースは購入できません!" <<endl;
	}

	//ジュースが購入できる場合
	int money2=110;
	
	if(money2>=110){
		cout << "ジュースが購入できます!" <<endl;
	}
	else{
		cout << "ジュースは購入できません!" <<endl;
	}

}

実行結果は以下の通りです。
ジュースは購入できません!
ジュースが購入できます!
if分の使い方は下記の通りです。
if(条件){  条件が真(または0以外)の場合の処理 } else{  条件が偽(または0)の場合の処理 }
条件分岐は更に分けることが出来ます。
例えば110円なら缶ジュースが購入でき、140円以上なら缶ジュースに加えてペットボトルのジュースも購入できるとします。 この場合は、110円未満、110円以上〜140円未満、140円以上と場合わけが必要になります。

#include <iostream>
using namespace std;

int main(){

	//全ての種類のジュースが購入できる場合
	int money1=160;
	
	if(money1>=140){
		cout << "缶とペットボトルのジュースが購入できます!" <<endl;
	}
	else if(money1>=110 && money1<140){
		cout << "缶ジュースは購入できます!" <<endl;
	}
	else{
		cout <<"何も購入できません!"<<endl;
	}

	//缶ジュースだけ購入できる場合
	int money2=120;
	
	if(money2>=140){
		cout << "缶とペットボトルのジュースが購入できます!" <<endl;
	}
	else if(money2>=110 && money2<140){
		cout << "缶ジュースは購入できます!" <<endl;
	}
	else{
		cout <<"何も購入できません!"<<endl;
	}

	//何も購入できない場合
	int money3=100;
	
	if(money3>=140){
		cout << "缶とペットボトルのジュースが購入できます!" <<endl;
	}
	else if(money3>=110 && money3<140){
		cout << "缶ジュースは購入できます!" <<endl;
	}
	else{
		cout <<"何も購入できません!"<<endl;
	}
}

実行結果は以下の通りです。
缶とペットボトルのジュースが購入できます!
缶ジュースは購入できます!
何も購入できません!
このように条件分岐では検査対象の値によってどの条件に進むべきか詳細に決めることが出来ます。
条件分岐を追加する場合にはelse ifを追加していきます。

if(条件1){  条件1が真の場合 } else if(条件2){  条件1が偽でかつ条件2が真である } else{ 条件1、条件2とも偽である }
上記のプログラムは更に別の書き方にも書き換えられます。
if(条件1){  条件1が真の場合 } else{ if(条件2){ 条件1が偽でかつ条件2が真である } else{ 条件1、条件2とも偽である } }
条件には下記の内容を用いれます。
条件内容
a<bbの方が大きい場合に真
a>baの方が大きい場合に真
a==baとbが等しい場合に真
a!=baとbが等しくない場合に真
a>=bbがa以上の場合に真
a<=baがb以上の場合に真
a && baが真で且つbが真である場合に真
a || baが真またはbが真である場合に真
switch文を使おう!
switch文もif文と同様、条件分岐が可能です。
但し、switch文は値と定数値しか利用できません。

switchの構文は下記の通りです。
switch (定数式){ case 定数1: 文; break; case 定数2: 文; break; case 定数3: 文; break; ・・・ default: 文; }
先ず、breakを用いる理由としては、breakを用いないと全ての場合が実行されてしまいます。また、breakを用いることで break以後のプログラムが実行されなくなります。ここでは、switch文を抜ける意味となります。

defaultは条件がどのケースにも当てはまらなかった場合に実行されます。

switchはスイッチの名が付くくらいですので、スイッチの意味合いですね。イメージは下記図の通りです。


それではサンプルプログラムを紹介します。

#include <iostream>
using namespace std;

int main(){

	int num;

	cout << "好きな番号1〜3を入力してください。\n";
	cin >> num;

	switch(num){

		case 1:
			cout << "1番が実行されました。\n";
			break;

		case 2:
			cout << "2番が押されました\n";

		case 3:
			cout << "3キーが押されました\n";
			break;

		default:
			cout << "1〜3キー以外が押されました";
			break;

	}


}

1キーを押した場合
好きな番号1〜3を入力してください。
1
1番が実行されました。
2キーを押した場合
好きな番号1〜3を入力してください。
2
2番が押されました
3キーが押されました
3キーを押した場合
好きな番号1〜3を入力してください。
3
3キーが押されました
4キーを押した場合
好きな番号1〜3を入力してください。
4
1〜3キー以外が押されました