カテゴリ: C# 更新日: 2025/07/12

C#のgoto文の使い方と注意点!ジャンプ構文を理解しよう

C#のgoto文の使い方と注意点!ジャンプ構文を理解しよう
C#のgoto文の使い方と注意点!ジャンプ構文を理解しよう

先生と生徒の会話形式で理解しよう

生徒

「C#でプログラムの途中から別の場所にジャンプすることってできますか?」

先生

「はい、C#ではgoto文を使うと、指定したラベルの位置に処理をジャンプさせることができます。」

生徒

「ジャンプって何か難しそうですね……どんな時に使うんですか?」

先生

「それでは、goto文の使い方や注意点を、初心者の方にもわかりやすく説明していきましょう!」

1. goto文とは?

1. goto文とは?
1. goto文とは?

C#のgoto文は、プログラムの中で指定したラベルの場所へ処理の流れをジャンプさせる構文です。「ジャンプ構文」とも呼ばれます。

たとえば、ある条件が満たされたときに、すぐに別の処理へ移動したい場合に使われます。ラベルとは、ジャンプ先の目印となる名前で、:(コロン)をつけて定義します。

2. goto文の基本的な使い方

2. goto文の基本的な使い方
2. goto文の基本的な使い方

まずは、簡単なgoto文のサンプルコードを見てみましょう。特定の条件を満たすと、指定されたラベルにジャンプします。


using System;

class Program
{
    static void Main()
    {
        int number = 3;

        if (number == 3)
        {
            goto JumpHere;
        }

        Console.WriteLine("この行はスキップされます。");

    JumpHere:
        Console.WriteLine("ここにジャンプしてきました!");
    }
}

この例では、変数numberが3のとき、goto JumpHere;によってJumpHere:というラベルの位置へジャンプします。


ここにジャンプしてきました!

3. goto文を使うときの注意点

3. goto文を使うときの注意点
3. goto文を使うときの注意点

goto文はとても強力ですが、使い方には注意が必要です。なぜなら、ジャンプを多用するとプログラムの流れが複雑になり、コードが読みにくくなるからです。

このようなコードのことを「スパゲッティコード」と呼びます。文字通り、処理の流れがごちゃごちゃに絡まってしまうという意味です。

そのため、goto文はできるだけ避け、代わりにif文switch文ループ構文(for、while、foreachなど)を使って処理を記述するのが一般的です。

4. ループの中でgotoを使う例

4. ループの中でgotoを使う例
4. ループの中でgotoを使う例

gotoはループの中で条件によって途中で抜けるような処理にも使えますが、通常はbreakcontinueを使う方が自然です。

とはいえ、参考のためにgotoを使ったループ処理を紹介します。


using System;

class Program
{
    static void Main()
    {
        int i = 0;

    StartLoop:
        if (i >= 5)
            goto End;

        Console.WriteLine("i = " + i);
        i++;
        goto StartLoop;

    End:
        Console.WriteLine("ループを抜けました。");
    }
}

i = 0
i = 1
i = 2
i = 3
i = 4
ループを抜けました。

このようにgotoだけでループを作ることもできますが、whileforを使った方が分かりやすく安全です。

5. goto文の使用を避けるための代替方法

5. goto文の使用を避けるための代替方法
5. goto文の使用を避けるための代替方法

goto文を使いたくなる場面は、主に以下のような場合です。

  • ネストが深い処理から一気に抜けたいとき
  • エラーハンドリングや一部の特別な処理をしたいとき

しかし、それらの多くは、関数化することで読みやすく、再利用しやすくできます。たとえば、処理を小さなメソッドに分けると、ジャンプせずに処理の流れを明確に保てます。

また、if文で早めにreturnする書き方をすれば、無理にgotoで飛ばす必要もなくなります。

6. どうしても使いたいときのポイント

6. どうしても使いたいときのポイント
6. どうしても使いたいときのポイント

どうしてもgoto文を使わなければならない場面があるときは、以下のポイントを守りましょう。

  • ジャンプ先のラベル名は、意味のある分かりやすい名前にする
  • 短い範囲で使い、他のコードに影響を与えないようにする
  • ドキュメントやコメントをしっかり残して、なぜ使ったのか理由を書く

これらを意識することで、gotoを使ったとしても、最低限の可読性を保つことができます。

カテゴリの一覧へ
新着記事
C#でタイムスタンプの精度を上げるためのテクニックを徹底解説!(初心者向け)
C#のコーディング規約(C# Coding Conventions)とは?読みやすいコードを書くための基本ルール
C#のデストラクタ(ファイナライザ)の使い方と注意点をやさしく解説!
COBOL資産のバージョン管理とは?初心者でもわかる保守と管理の基本
人気記事
No.1
Java&Spring記事人気No1
COBOLで学ぶSELECT文のORDER BY・GROUP BY活用法!初心者でもわかるデータ集計
No.2
Java&Spring記事人気No2
C#のpartialクラスとは?初心者でも理解できるクラス分割の基本
No.3
Java&Spring記事人気No3
COBOLのCOPY句の使い方を完全ガイド!初心者でもわかる共通部品の再利用方法
No.4
Java&Spring記事人気No4
COBOLで学ぶカーソル操作と複数行データ取得の基本
No.5
Java&Spring記事人気No5
COBOLの数値データ型「PIC 9」の使い方と注意点をやさしく解説!
No.6
Java&Spring記事人気No6
C#の数値型をマスターしよう!int・double・decimalの違いと使い方
No.7
Java&Spring記事人気No7
C#で型を調べる方法!GetType()・typeof演算子の違いと使い方
No.8
Java&Spring記事人気No8
C#の日付型(DateTime)と基本的な使い方を解説|初心者向け入門ガイド