C++のif文のサンプルです。
目次
if文
| if (条件){ 処理 } else if (条件) { 処理 } else { 処理 } |
- 条件がtrueの場合、配下のブロック{ }の処理が実行され、if文の処理は終了します。
- 条件がfalseの場合、配下のブロック{ }の処理は実行されず、その下(else if/else)に進みます。
- else ifは、1つ以上記述できます。省略可。
- elseのブロック{ }の処理は、どの条件もtrueでなかったときに実行されます。
- elseは、1つのみ記述できます。省略可。
コード
サンプルのコードです。
11行目の条件式を満たすので1が表示されます。
15行目のように、else if文の中にif文を記述することができます。入れ子の構造です。
#include <iostream>
using namespace std;
int main() {
int num = 1;
if (num == 0) {
cout << "0\n";
}
else if (num == 1) {
cout << "1\n"; // 1が表示される
}
else if (num == 2) {
if (num == 2) {
cout << "サンプルです\n";
}
}
else {
cout << "01以外\n";
}
return 0;
}
比較演算子
上記コードの==は比較演算子です。
比較演算子は、2つの値を比べて真偽値(true/false)を返します。
条件を満たしていればtrue,そうでない場合はfalseです。
| 比較演算子 | 説明 |
|---|---|
| a == b | aとbの値は等しい |
| a != b | aとbの値は等しくない |
| a > b | aはbより大きい |
| a >= b | aはbより大きい または 等しい |
| a < b | aはbより小さい |
| a <= b | aはbより小さい または 等しい |
論理演算子の論理積(&&)
- if文で論理積(&&)を使用する場合、論理積(&&)の左の式と右の式の両方が条件に合致する場合にtrueになります。
- 論理積(&&)の左の式がfalseの場合、右の式は評価されません。これを短絡評価(ショートサーキット評価 : Short-Circuit Evaluation)といいます。
コード
8行目は、偶数かつ10より小さい場合にtrueになります。
→OKが表示されます。
#include <iostream>
using namespace std;
int main() {
int num = 6;
if ((num % 2 == 0) && (num <10)) {
cout << "OK\n"; // OKが表示される
}
else {
cout << "NG\n";
}
return 0;
}
論理演算子の論理和(||)
- if文で論理和(||)を使用する場合、 論理和(||)の左の式または右の式のどちらかが条件に合致する場合にtrueになります。
- 論理和(||)の左の式がtrueの場合、右の式は評価されません。これを短絡評価(ショートサーキット評価 : Short-Circuit Evaluation)といいます。
コード
8行目は、偶数または10より小さい場合にtrueになります。
→OKが表示されます。
#include <iostream>
using namespace std;
int main() {
int num = 1;
if ((num % 2 == 0) || (num <10)) {
cout << "OK\n"; // OKが表示される
}
else {
cout << "NG\n";
}
return 0;
}
論理演算子の否定(!)
- !aとした場合、aがfalseの場合にtrueになり、aがtrueの場合にfalseになります。
コード
8行目はnumと1の比較でfalseになり、それを!で否定して条件式はtrueになります。
12行目はnumと9の比較でtrueになり、それを!で否定して条件式はfalseになります。
#include <iostream>
using namespace std;
int main() {
int num = 9;
if (!(num == 1)) {
cout << "test1\n"; // test1が表示される
}
if (!(num == 9)) {
cout << "test2\n";
}
else {
cout << "test3\n"; // test3が表示される
}
return 0;
}
関連の記事
C++ switch文のサンプル
C++ for文とbreakとcontinueのサンプル
C++ while文とdo while文のサンプル