C/C++

goto文

更新日:

goto文とは

goto文は指定した位置まで実行位置を移動する命令です。
ただし、別の関数には飛べません。

一見便利なように思えますが、この命令は最近のパラダイムでは使用は推奨されません。
構造化プログラミングにおいてはプログラムの構造を、順次、分岐、反復の3種類の形で表現する(出来る)という考え方があります。
これに乗っ取ると、ソースコード上のあらゆる位置に制限なく移動できるgo to文を使用するということは、構造化プログラミングの理念に反してコードを複雑化するからです。

ですが、絶対に使わないということもありません。
goto文を使ったほうがわかりやすいという場面もあるでしょう。複雑なコードを書くときはgoto文を思い出してみるのも良いでしょう。

使い方

【ラベル名】:


で設定した位置に

goto 【ラベル名】


でジャンプします。

ラベル名の設定は;(セミコロン)ではなく:(コロン)なので間違えないようにしましょう。

以下はgoto文を用いた反復処理の例文です。
aが10より大きければlabel1でループし、10以下ならlabel2に飛んでループから脱出します。

goto_sample.c

#include <stdio.h>

int main(void)
{
	int a = 0;

label1:
	printf("%d\n", a);

	if (a >= 10)
		goto label2;

	a++;
	goto label1;
label2:

	return 0;
}



-C/C++

Copyright© ツナのエンジニアブログ , 2025 All Rights Reserved Powered by AFFINGER5.