mather314 2012-08-15 14:21:11

[C] gotoレス このエントリーをはてなブックマークに追加

投稿者からのアピールポイント

forが泣いておる…

for(;;) {
    // ...
    if(condition) break;
    // ...
}

コメント(14)

#1 shii204504bySE 2012-08-15 14:28:45  

Whileでやれ、と言いたいが「途中に」Breakがあるのがポイントか。うーん…

#2 math_neko 2012-08-15 15:11:14  

while でも break は使えるじゃろ… orz

#4 InternalServerE 2012-08-15 18:33:48  

ループ抜ける条件が複雑だったり、shii204504bySEさんのいう通り、breakしたいポイントがコードの「途中」に紛れ込む場合、whileじゃ表現できないのでやむなく、というの はあるかな。

while(true)使ったら元コードと大差ないしね。

#6 CoolDriverJPN 2012-08-15 23:52:40  

無限ループ時は while(1) じゃなくて for(;;) を使えって、どこからでてきた規約だったかな。
検索したら、これが出てきたけど。
http://msdn.microsoft.com/ja-jp/library/6t66728h.aspx

#7 yehawhe 2012-08-16 07:02:47  

while(1)だと毎回条件判定処理が挟まれるから無駄なんでしょ

#8 mather314 2012-08-17 17:24:06  

見つかるまでループだったり、i=0; ... for(;;){ ... if(i == MAX) break; ... ++i;}が含まれてたりもするんですが、所々でgotoの代わりもしている…。 ぜーんぶこのスタイルなんでパッと見区別がつきません。汎用性高いっていうんですかね、これ。

#9 dao_tq 2012-08-17 17:54:50  

最初はgoto文でEND:のラベルに奇麗に飛ばしていたのに、「goto禁止」のルールのためにこの形にされたことある・・

#10 dao_tq 2012-08-17 17:56:51  

while(1)は、チェッカーに”条件が不変”と警告されるのでNGらしい・・

#11 mather314 2012-08-17 18:00:51  

CoolDriverJPNさん 推奨っていうか、警告回避できます、ということですか…。 基本的に皆さん「何が悪いの?」って感じなので投稿を書きなおしたほうがいいのかなーって気がしてますが、 中身が1000行近くに渡ってたり、for(;;){...}が3,4回ネストしてたりしても全部このスタイルってのが、すごく辛かったんですけどね。

#12 InternalServerE 2012-08-17 18:59:12  

> for(;;){...} が3,4回ネストしてたり
ループの書き方以前に、3重4重ネストしてることの方にウンコ臭を感じます。自分なら、「せめて」どっかの階層でメソッドにくくり出してくれ、と言いたくなるなあ。

#13 knuckle9876 2012-08-22 15:27:28  

無限ループは for(;;) で統一しようという話をどこかで読んだ気がする。オープンソースのプロジェクトのローカルルールでだけど。 コードの意図は明瞭だし全然ウンコじゃない

#14 mohno 2013-02-10 10:38:44  

これは別にいいんじゃないかな。「中身が1000行近くに渡ってたり、for(;;){...}が3,4回ネストしてたり」はともかく。


このウンコードに臭った人は、こちらのウンコードにも臭ってます

[Java] フルHD推奨。

このエントリーをはてなブックマークに追加

画面の左側がわりと無駄な気がします。

public int hoge(){
    int result = 0;
...

鑑賞する »

[Java] スベテカンスウ

このエントリーをはてなブックマークに追加

何でもやってくれる関数って、便利ですよね...

class Processor
{
	public bool process...

鑑賞する »

[その他] HOW TO ABC..

このエントリーをはてなブックマークに追加

実際にあった某システムの超重要なマスター...

create table item_master (
 A varchar(2...

鑑賞する »