プログラミング事前課題 その6 条件によって処理を変える if文

今回は条件によって処理を変更するif文について見て行きましょう。

条件によって処理を変えるとは、例えば
変数が偶数だったら(2で割り切れたら)結果出力画面に表示して
奇数だったら表示しないとかそういうことですね。

とりあえずコードを見て行きましょう。

#include <iostream>
using namespace std;

int main() {
	// your code goes here
	
	int num[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
		
	for(int i=0; i<10; i=i+1){

		int tmp = num[i] % 2;

		if ( tmp == 0 ){

			cout << num[i] << endl;

		}

	}
	
	return 0;
}

結果は
0
2
4
6
8
と出力されると思います。

前回のfor文の結果のうち、偶数だけが表示されてますね。
一先ずやりたいことはできたようです。

では、解説していきましょう。
今回のコードで注目する部分はここですね。

	for(int i=0; i<10; i=i+1){

		int tmp = num[i] % 2;

		if ( tmp == 0 ){

			cout << num[i] << endl;

		}

	}

for文自体は前回と同じなのでとりあえずいいでしょう。
10回繰り返してます。

		int tmp = num[i] % 2;

まず、この行。
この行ではtmpにnum[i]を2で割った余りを入れてますね。

次にこの部分

		if ( tmp == 0 ){
			...
		}

ここが新しい要素ですね。
この
if( ){

}

で表された部分をif文といって、
if( )の( )の中の条件が満たされている場合のみ{ }の中を実行するという構文になります。

今回のif文の中身は

		if ( tmp == 0 ){

ですね。
これはtmpの中身が0と等しい時だけ{ }の中を実行するという意味になります。
等しいを表す記号に==が使われているのは単体の=を既に、変数の代入に使っているため
それと被らないようにするためです。

ちなみにif( )の( )の部分入る条件には下記のものがあります。

if (a > b)
aがbより大きい時

if (a >= b)
aがbより大きいか、等しい時

if (a < b)
aがbより小さい時

if (a <= b)
aがbより小さいか、等しい時

if (a == b)
aがbと等しい時  

if(a != b)
aがbと等しくない時

今回はtmpの中身が0だった時
つまり、num[i]を2で割ったあまりが0だったとき=num[i]が偶数だったときのみ
num[i]の内容が結果出力画面に表示されるため、偶数だけが表示された訳ですね。

	for(int i=0; i<10; i=i+1){

		int tmp = num[i] % 2;

		if ( tmp == 0 ){

			cout << num[i] << endl;

		}

	}

という感じで、if文を使うと{ }の中の処理をしたりしなかったりを選択することができます。

ちなみにif文には派生があって、

		if ( a > 0 ){
			cout << a << endl;
		}else if( a == 0 ){
			cout << a + 1000 << endl;			
		}else{
			cout << a - 1000 << endl;			
		}

といった感じでif( ){ }の後にelse if( ){ }を続けることで条件を追加することができます。
この場合、aがint型の変数で中身に何か数値が入っていると仮定して
aが0より大きいとき、そのまま表示して
aが0と等しいとき、aに1000を足して表示して
aが0より小さいとき、aから1000を引いて表示する
という意味になります。

詳しく知りたい人はgoogleで「if文 c++」とかで検索しましょう。


http://hariganet.hatenablog.com/entry/2014/03/27/232719