プログラミング事前課題 その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を引いて表示する
という意味になります。