Cプログラミング
 Computer >> コンピューター >  >> プログラミング >> Cプログラミング

C言語のジャンプステートメントとは?break・continue・return・gotoの使い方を解説

C言語では、プログラムの実行中にある文から別の文へ処理を移動する「ジャンプステートメント」が用意されています。主なジャンプステートメントには、breakcontinuereturngoto の4種類があります。この記事では、それぞれの動作と使い方を、サンプルコードと実行結果とともにわかりやすく解説します。

break文

break文は、ループを途中で終了したり、ブロックから抜け出すために使用されるキーワードです。

  • 制御は、ループ(またはブロック)の直後にある次の文へ移ります。
  • for文、while文、do-while文、switch文と組み合わせて使用できます。
  • 入れ子(ネスト)されたループ内でbreakを使用した場合、終了するのは最も内側のループのみです。

構文

break;

サンプルプログラム

以下は、break文を使用したCプログラムの例です。

#include<stdio.h>
main( ){
    int i;
    for (i=1; i<=5; i++){
        printf("%d ", i);
        if (i==3)
            break;
    }
}

実行結果

このプログラムを実行すると、i が 3 になった時点でループが終了するため、次の出力が得られます。

1 2 3

continue文

continue文は、ループ内の残りの処理をスキップし、次の繰り返し(次回の条件判定)へ制御を移すために使用されます。break文とは異なり、ループ自体は終了しません。

構文

continue;

サンプルプログラム

以下は、continue文を使用したCプログラムの例です。

#include<stdio.h>
main( ){
    int i;
    for (i=1; i<=5; i++){
        if (i==2)
            continue;
        printf("%d ", i);
    }
}

実行結果

i が 2 のときだけ printf がスキップされるため、出力は次のようになります。

1 3 4 5

return文

return文は、関数の実行を終了し、制御を呼び出し元の関数へ返します。式や値を指定すると、その値が呼び出し元に戻り値として渡されます。

構文

return[式/値];

サンプルプログラム

以下は、return文を使用したCプログラムの例です。

#include<stdio.h>
main(){
    int a,b,c;
    printf("enter a and b value:");
    scanf("%d%d",&a,&b);
    c=a*b;
    return(c);
}

実行結果

このプログラムを実行すると、入力した2つの値の積が戻り値として返されます。

enter a and b value:2 4
Process returned 8 (0x8)

goto文

goto文は、プログラムの通常の実行順序を離れ、指定したラベルの位置へ制御を移す(無条件ジャンプする)ために使用されます。ただし、乱用するとプログラムの流れが追いにくくなり、可読性や保守性が低下するため、使用は最小限にとどめるのが一般的です。

構文

goto ラベル名;
...
ラベル名: 文;

サンプルプログラム

以下は、goto文を使用したCプログラムの例です。

#include<stdio.h>
main( ) {
    printf("Hello");
    goto l1;
    printf("How are");
    l1: printf("you");
}

実行結果

「goto l1;」の時点で「How are」の出力はスキップされ、ラベル l1 の位置へジャンプするため、出力は次のようになります。

Hello you

まとめ

4つのジャンプステートメントの役割を整理すると、以下のようになります。

  • break: ループやswitch文を途中で抜ける
  • continue: 現在の周回の残り処理をスキップし、次の繰り返しへ進む
  • return: 関数の実行を終了し、呼び出し元へ制御と値を返す
  • goto: 同じ関数内の指定したラベルへ無条件にジャンプする

それぞれの特性を理解して適切に使い分けることで、より柔軟で効率的なCプログラムを書くことができます。

  1. C言語のgoto文を解説!平方根を計算するサンプルプログラム

    このCプログラムは、5つの数値に対して平方根を計算する例です。変数countには、読み込んだ数値の個数が記録されます。countが5以下である間は、goto read;文によって制御がラベル「read」の位置へ移り、処理を繰り返します。countが5を超えると、終了メッセージを表示してプログラムを停止します。goto文とはgoto文は、通常のプログラム実行の流れ(順次実行)から外れ、制御をプログラム内の別の場所へ強制的に移すために使用されます。ラベルで指定した位置にジャンプすることで、ループ処理やエラー処理などを実現できます。プログラム以下は、goto文を使用したCプログラムの例です。#inc

  2. C言語のループ制御文(for・while・do-while)を徹底解説!フローチャートとサンプルコード付き

    C言語におけるループ制御文は、同じ処理を何度も繰り返し実行したい場合に使われる重要な構文です。毎回コードを書き連ねる必要がなくなり、プログラムを簡潔かつ効率的に記述できます。 C言語で利用できるループ制御文は、主に以下の3種類です。 for文 while文 do-while文 本記事では、それぞれの構文の書き方、フローチャートによる動作の流れ、実際に動くサンプルプログラムと実行結果まで、初心者にもわかりやすく解説します。 for文とは?基本構文と使い方 for文は、「初期化」「条件式」「増減式」を1行にまとめて記述できる、最もよく使われるループ構文です。繰り返す回数があらかじめ決まっている