Quantcast
Channel: C#タグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 8895

C#7以降でお手軽に多重ループを抜ける

$
0
0

C#7以降でお手軽に多重ループを抜ける方法です。
C#ではgotoを除けば多重ループを抜ける構文がなく、フラグ用変数を使用するか、該当部分を関数化するして対応してきました。
わざわざ関数化するにしても煩わしさを感じていたわけですが、ローカル関数を使用するとお気楽に多重ループを抜けることが出来ます。

privatevoidfunction(){intcounter=0;// do something here// 多重ループをローカル関数で囲うvoidDoIt(){while(true){while(true){// ローカル変数をそのまま参照できる!counter++;// Return文でローカル巻子を抜ける = 多重ループを抜けるif(counter>=10)return;}}}// ローカル関数を実行DoIt();// do some other things here// 結果Console.WriteLine($"counter={counter}");}

このように徒然なるまま書いたコードに数行足すだけで簡単に
多重ループを抜けることが出来ました。

ローカル関数を定義しただけで実行文を書くのを忘れたりするので注意。
JavaScriptのように関数の即時実行が出来たらいいんですが。

以上、スタジオへお返しします。


Viewing all articles
Browse latest Browse all 8895

Trending Articles