C#でループ処理から抜け出す際に使うgoto文を解説
アプリケーション開発を行う現場では、プログラミング言語に関わらずループ処理はよく使用されます。データ件数が多い場合、ループ処理を途中で抜けてパフォーマンスを上げることは多くの現場で求められます。
ここでは、C#で開発する場合のループ処理を途中で抜けるgoto文を解説していきます。
- プログラマー
- ループ処理って無駄に回し続けると、本当にプログラムのパフォーマンスが悪くなりますよね。C#で開発しているので、goto文を活用して、ループ処理の改善に努めていきたいと思います。
- プロジェクト
リーダー - 良い心がけですね。無駄にループ処理を行い続けると、処理時間がかかってしまい、ユーザーの信頼も低下してしまう恐れがあります。ここで改めてgoto文の活用方法などをまとめてみますので一緒に確認していきましょう。
goto文の基本構文と注意点
goto文はC#に限らず他の言語でも登場しますが、C#のgoto文の基本構文は以下となります。goto文にはジャンプ先であるラベルが必要です。ここでのラベルは「LOOPEND:」が該当します。
1
|
goto LOOPEND;
|
「LOOPEND:」にジャンプした後の処理を記述します。
1
2
|
LOOPEND:
Console.WriteLine("プログラムを終了します。");
|
goto文は確かに便利な命令です。しかし、goto文を多用しすぎるのは、良いプログラムとは言えません。本来、上から下にプログラムのロジックが組まれている方が、あとから改修や保守を担当する開発者にも見やすいプログラムです。goto文はロジックを飛ばすことも可能にしますので、二重ループ処理を抜けたい場合など、限定的な使い方をする方が良いでしょう。
goto文を使用したサンプルプログラム
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
using System;
using System.Windows.Forms;
namespace WindowsFormsApp22
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Console.WriteLine("ループ処理開始");
for (int r = 1; r <= 10; r++)
{
Console.WriteLine(r);
if (r == 5)
{
goto LOOPEND;
}
}
LOOPEND:
Console.WriteLine("プログラムを終了します。");
}
}
}
|
- プログラマー
- これからgoto文を活用して、無駄なループ処理を省くようにしていきます。
- プロジェクト
リーダー - goto文は現場によっては利用不可としているところもあり、注意が必要です。二重ループ処理を抜けるなど、限定して利用するには良いですが、濫用し過ぎると俗に言う「スパゲティプログラム」になってしまいます。
ループ処理は極力無駄を省くようにしましょう
プログラミング開発を行う上で、ループ処理は避けては通れない処理です。データ件数が数件の場合は、そこまでパフォーマンスに影響を及ぼさないでしょうが、大量データが投入された場合、ループ処理が回り続けるとパフォーマンスが低下します。無駄な処理を省くためにも、goto文を活用してパフォーマンス向上に努められるプログラマーになりましょう。
FEnet.NETナビ・.NETコラムは株式会社オープンアップシステムが運営しています。
株式会社オープンアップシステムはこんな会社です
秋葉原オフィスには株式会社オープンアップシステムをはじめグループのIT企業が集結!
数多くのエンジニアが集まります。
-
スマホアプリから業務系システムまで
スマホアプリから業務系システムまで開発案件多数。システムエンジニア・プログラマーとしての多彩なキャリアパスがあります。
-
充実した研修制度
毎年、IT技術のトレンドや社員の要望に合わせて、カリキュラムを刷新し展開しています。社内講師の丁寧なサポートを受けながら、自分のペースで学ぶことができます。
-
資格取得を応援
スキルアップしたい社員を応援するために資格取得一時金制度を設けています。受験料(実費)と合わせて資格レベルに合わせた最大10万円の一時金も支給しています。
-
東証プライム上場企業グループ
オープンアップシステムは東証プライム上場「株式会社夢真ビーネックスグループ」のグループ企業です。
安定した経営基盤とグループ間のスムーズな連携でコロナ禍でも安定した雇用を実現させています。
株式会社オープンアップシステムに興味を持った方へ
株式会社オープンアップシステムでは、開発系エンジニア・プログラマを募集しています。
年収をアップしたい!スキルアップしたい!大手の上流案件にチャレンジしたい!
まずは話だけでも聞いてみたい場合もOK。お気軽にご登録ください。
C#新着案件New Job
-
システム開発/東京都新宿区/【WEB面談可/C#経験者/20代前半の方活躍中/経験1年以上の方活躍中】/在宅勤務
月給29万~34万円東京都新宿区(新宿駅) -
システム開発/東京都新宿区/【WEB面談可/C#経験者/20代後半~40代の方活躍中/経験年数不問】/在宅勤務
月給41万~50万円東京都新宿区(新宿駅) -
デバック、テスト項目の作成/神奈川県横浜市/【WEB面談可/C#経験者/20代前半の方活躍中/経験1年以上の方活躍中】/在宅勤務
月給29万~34万円神奈川県横浜市(桜木町駅) -
デバック、テスト項目の作成/神奈川県横浜市/【WEB面談可/C#経験者/20代後半~40代の方活躍中/経験年数不問】/在宅勤務
月給41万~50万円神奈川県横浜市(桜木町駅) -
基幹システム開発導入/東京都新宿区/【WEB面談可/C#経験者/20代前半の方活躍中/経験1年以上の方活躍中】/在宅勤務
月給29万~34万円東京都新宿区(西新宿駅) -
基幹システム開発導入/東京都新宿区/【WEB面談可/C#経験者/20代後半~40代の方活躍中/経験年数不問】/在宅勤務
月給41万~50万円東京都新宿区(西新宿駅)