バックグラウンド
C++ ステートメントは、プログラムのフローを制御するために使用される基本単位です。C++ のステートメントは次のカテゴリに分類できます。
- 式ステートメント
- 複合文
- select ステートメント
- 反復ステートメント
- ジャンプステートメント
式ステートメント
式ステートメントは最も単純なタイプのステートメントであり、式とその後に続くセミコロンで構成されます。式ステートメントの役割は、式の値を評価してそれを破棄することです。以下は、単純な式ステートメントの例です。
int x = 1;
x + 2; // 这是一个表达式语句,它的值为 3,但是被丢弃了
複合文
複合ステートメントは、中括弧で囲まれた複数のステートメントで構成されるステートメント ブロックです。複合ステートメントには、他の複合ステートメントを含む、あらゆるタイプのステートメントを含めることができます。以下は、単純な複合文の例です。
{
int x = 1;
int y = 2;
int z = x + y;
}
select ステートメント
Select ステートメントは、条件に基づいてさまざまな実行パスを選択するために使用されます。C++ には、if ステートメントと switch ステートメントの 2 種類の選択ステートメントがあります。
if ステートメント
if ステートメントは、条件に基づいて異なる実行パスを選択するために使用されます。その基本的な構文は次のとおりです。
if (condition) {
// 如果 condition 为真,执行这里的代码
} else {
// 如果 condition 为假,执行这里的代码
}
if ステートメントでは、else 部分を省略して、if 部分のみを残すことができます。以下は単純な if ステートメントの例です。
int x = 1;
if (x == 1) {
std::cout << "x is 1" << std::endl;
}
switch ステートメント
switch ステートメントは、さまざまな条件に応じてさまざまな実行パスを選択するために使用されます。その基本的な構文は次のとおりです。
switch (expression) {
case value1:
// 如果 expression 的值等于 value1,执行这里的代码
break;
case value2:
// 如果 expression 的值等于 value2,执行这里的代码
break;
default:
// 如果 expression 的值不等于任何一个 case,执行这里的代码
break;
}
switch ステートメント内の式は、整数型または列挙型の値である必要があります。case に続く値は定数式である必要があります。デフォルトの部分はオプションであり、expression の値がどのケースの値とも等しくない場合に実行されます。単純な switch ステートメントの例を次に示します。
int x = 1;
switch (x) {
case 0:
std::cout << "x is 0" << std::endl;
break;
case 1:
std::cout << "x is 1" << std::endl;
break;
default:
std::cout << "x is neither 0 nor 1" << std::endl;
break;
}
反復ステートメント
反復ステートメントは、特定の条件が満たされるまでコードのブロックを繰り返し実行するために使用されます。C++ には、while ステートメント、do-while ステートメント、for ステートメントの 3 つの反復ステートメントがあります。
while ステートメント
while ステートメントは、特定の条件が満たされるまでコード ブロックを繰り返し実行するために使用されます。その基本的な構文は次のとおりです。
while (condition) {
// 只要 condition 为真,就重复执行这里的代码
}
条件は、true または false に評価される式です。while ステートメント内のコードは、条件が true と評価される限り繰り返し実行されます。以下は、単純な while ステートメントの例です。
int x = 0;
while (x < 10) {
std::cout << x << std::endl;
x++;
}
この例では、0 から 9 までのすべての整数を出力します。
do-while ステートメント
do-while ステートメントは、特定の条件が満たされるまでコード ブロックを繰り返し実行するためにも使用されます。その基本的な構文は次のとおりです。
do {
// 先执行一次这里的代码
} while (condition);
条件は、true または false に評価される式です。do文内のコードを一度実行してから、条件の値を判定します。do ステートメント内のコードは、条件が true と評価される限り繰り返し実行されます。以下は、単純な do-while ステートメントの例です。
int x = 0;
do {
std::cout << x << std::endl;
x++;
} while (x < 10);
for ステートメントはコードを繰り返し実行するためにも使用され、その構文は while や do-while よりも複雑です。その基本的な構文は次のとおりです。
for (init; condition; increment) {
// 只要 condition 为真,就重复执行这里的代码
}
init は、ループが開始される前に 1 回実行される初期化ステートメントです。条件は、true または false に評価される式です。for ステートメント内のコードは、条件が true と評価される限り繰り返し実行されます。increment は、各ループの最後に 1 回実行されるインクリメントまたはデクリメント ステートメントです。単純な for ステートメントの例を次に示します。
for (int i = 0; i < 10; i++) {
std::cout << i << std::endl;
}
ジャンプステートメント
Jump ステートメントは、プログラム内の指定された位置にジャンプするために使用されます。C++ には、goto ステートメント、break ステートメント、および continue ステートメントの 3 種類のジャンプ ステートメントがあります。
goto ステートメント
goto ステートメントは、プログラムの実行を指定されたラベルにジャンプできます。その基本的な構文は次のとおりです。
goto label;
...
label:
// 这里是标签处的代码
label はラベルで、その後にコロンが続く任意の識別子を指定できます。goto ステートメントは、プログラムの実行を指定されたラベルにジャンプします。以下は、単純な goto ステートメントの例です。
int x = 0;
loop:
std::cout << x << std::endl;
x++;
if (x < 10) {
goto loop;
}
この例では、0 から 9 までのすべての整数を出力します。この例では、goto ステートメントを使用して、プログラムの実行をラベル ループにジャンプしました。goto ステートメントはプログラムの制御フローを非常に混乱させる可能性があるため、できるだけ避ける必要があります。
ブレークステートメント
Break ステートメントは、ループまたは switch ステートメントから抜け出すために使用されます。その基本的な構文は次のとおりです。
while (condition) {
// 只要 condition 为真,就重复执行这里的代码
if (some_condition) {
break; // 跳出循环
}
}
Break ステートメントは、現在のループまたは switch ステートメントを直ちに終了し、プログラムの実行をループまたは switch ステートメントの後の最初のステートメントにジャンプします。以下は、単純な Break ステートメントの例です。
#include <iostream>
int main() {
for (int i = 0; i < 10; i++) {
if (i == 5) {
break;
}
std::cout << i << std::endl;
}
return 0;
}
この例では、0 ~ 4 のすべての整数を出力します。i が 5 に等しくなるまでループが実行されると、break ステートメントがループから飛び出し、プログラムはループ後の最初のステートメントの実行を継続します。
継続ステートメント
continue ステートメントは、ループ内の反復をスキップするために使用されます。その基本的な構文は次のとおりです。
while (condition) {
// 只要 condition 为真,就重复执行这里的代码
if (some_condition) {
continue; // 跳过本次迭代
}
}
continue ステートメントは、現在のループの反復をスキップし、プログラムの実行をループ本体の先頭にジャンプします。以下は、単純な continue ステートメントの例です。
#include <iostream>
int main() {
for (int i = 0; i < 10; i++) {
if (i == 5) {
continue;
}
std::cout << i << std::endl;
}
return 0;
}
この例では、0 から 9 までのすべての整数が出力されますが、5 は出力されません。i が 5 に等しくなるまでループが実行されると、 continue ステートメントはこの反復をスキップし、その後プログラムの実行はループ本体の先頭から実行を続けます。
やっと
この記事では主に C++ の基本的なステートメントを紹介しますが、その他の記事については公式アカウント QStack をご覧ください。