===== 選択構造のバリエーション ===== 3つの基本構造のうち、順次構造と選択構造を学びました。\\ 選択構造は、C++ではif文で表すことができることも学習済みだと思います。\\ ==== if文 ==== if(条件式) { trueの時の処理のブロック } else { falseの時の処理のブロック } //例:奇数か偶数かで、処理を分ける int var; cin >> var; if(var%2 == 0) { cout << "var は偶数です" << endl; } else { cout << "var は奇数です" << endl; } 一応ブロックで書きましたが、1行のみの命令で済むのであればブロックは、要りませんが、見やすくまとめるためにわざわざつけることも多いです。\\ if(条件式) trueの時の処理のブロック else falseの時の処理のブロック //ブロックなしで奇数偶数の分類を書いたもの if(var%2 == 0) cout << "var は偶数です" << endl; //命令が1行ならブロックは無しでもよい else cout << "var は奇数です" << endl; //命令が1行ならブロックは無しでもよい ==== その1:二者択一 ==== 初めにやった基本的な奴です。\\ ```if(条件式)```の条件によって、```if```直下のブロックと、```else```ブロックに処理が分岐します。\\ if(条件式) { trueの時の処理のブロック } else { falseの時の処理のブロック } === サンプルコード === 上の奇数と偶数で処理を分けるソースコードが、そのものです。\\ 正の整数には奇数か偶数しかありません。したがって、このif文は、すべての正の整数を対象に条件を2つに分けており、もれなく正の整数を処理するところに注意しましょう。(逆に言うと、条件によっては漏れがある場合があります。)\\ ==== その2:条件選択 ==== 条件がTrueの時だけ実行するパターン。\\ if(条件式) { //trueの時の処理 } ```else```ブロックがないだけである。elseの時がない場合はelseの処理を省いてよい。\\ ただし、二者択一パターンの時と違い、falseの時は処理を行わないでスルーしてしまうので、処理漏れ(処理が必要なのに処理をしないでしまう状態)に注意が必要である。\\ === サンプルコード === int var; cin >> var; if(var > 10) { cout << "varは10より大きい" << endl; }