C goto ステートメント
C goto ステートメント
このチュートリアルでは、C プログラミングで goto ステートメントを作成する方法を学習します。また、goto ステートメントを使用する場合と使用しない場合についても学習します。
goto
このステートメントにより、プログラムの制御を指定された label に移すことができます .
goto ステートメントの構文
goto label;
... .. ...
... .. ...
label:
statement;
ラベル 識別子です。 goto
のとき ステートメントが検出されると、プログラムの制御は label:
にジャンプします コードの実行を開始します。
例:goto ステートメント
// Program to calculate the sum and average of positive numbers
// If the user enters a negative number, the sum and average are displayed.
#include <stdio.h>
int main() {
const int maxInput = 100;
int i;
double number, average, sum = 0.0;
for (i = 1; i <= maxInput; ++i) {
printf("%d. Enter a number: ", i);
scanf("%lf", &number);
// go to jump if the user enters a negative number
if (number < 0.0) {
goto jump;
}
sum += number;
}
jump:
average = sum / (i - 1);
printf("Sum = %.2f\n", sum);
printf("Average = %.2f", average);
return 0;
}
出力
1. Enter a number: 3 2. Enter a number: 4.3 3. Enter a number: 9.3 4. Enter a number: -2.9 Sum = 16.60 Average = 5.53
goto を避ける理由
goto
の使用 ステートメントは、バグが多く、従うのが難しいコードにつながる可能性があります。たとえば、
one:
for (i = 0; i < number; ++i)
{
test += i;
goto two;
}
two:
if (test > 5) {
goto three;
}
... .. ...
また、goto
ステートメントを使用すると、スコープから飛び出すなどの悪いことを実行できます。
そうは言っても、goto
時々役立つことがあります。例:ネストされたループから抜け出すため。
goto を使用する必要がありますか?
goto
の使用を考えている場合 ステートメントを使用すると、プログラムが簡素化され、使用できます。そうは言っても、goto
goto
を使用しなくても C プログラムを作成できます。
これは、C++ の作成者である Bjarne Stroustrup からの引用です。「'goto' は何でもできるという事実こそが、私たちがそれを使用しない理由です。」
C言語