1 名前:デフォルトの名無しさん mailto:sage [2020/01/31(金) 20:54:06.26 ID:Nt0XFA2s.net] C++に関する質問やら話題やらはこちらへどうぞ。 ただし質問の前にはFAQに一通り目を通してください。 IDE (VC++など)などの使い方の質問はその開発環境のスレにお願いします。 前スレ C++相談室 part147 https://mevius.5ch.net/test/read.cgi/tech/1576659413/ このスレもよろしくね。 【初心者歓迎】C/C++室 Ver.105【環境依存OK】 mevius.5ch.net/test/read.cgi/tech/1556142878/ ■長いソースを貼るときはここへ。■ codepad.org/ https://ideone.com/ [C++ FAQ] https://isocpp.org/wiki/faq/ www.bohyoh.com/CandCPP/FAQ/ (日本語)
38 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 11:58:10 ID:YFAnTUnh.net] 多重ループを抜ける方法 ループに名前は名前を考えるのがイヤ break [数字] は数えるのがイヤ 関数を分けてreturn はもっとイヤ 変数を使ってbreakで抜けるのは論外 でもgotoはなんとなくイヤ 全ての要望に答えたのが >>32
39 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 12:17:12 ID:pUJoLXPw.net] バカの要望を聞いてさらにロクでもない方向に行ってしまうっていう わかりやすい例を提供してくれてありがとう。
40 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 12:30:47.94 ID:+WgC03YT.net] 多重ループにする設計が悪い
41 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 12:31:58.09 ID:YFAnTUnh.net] ん? 皮肉のつもりで書いたんだけど 真面目な書き込みととらえられるとは思わなかった
42 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 12:34:39.38 ID:YFAnTUnh.net] 主に>>39 みたいなアホに対する皮肉
43 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 12:40:18.47 ID:+WgC03YT.net] は?オメェだろアホ
44 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 12:41:53.34 ID:pUJoLXPw.net] あえて説明してるところで恥ずかしいことになってる奴w
45 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 13:00:03 ID:TULylXcw.net] >>37 おれはおもしろいアイデアと思う 他に考えるとしたら やはり名前があった方が変更に強いと思うのでその線でいくと 大抵ループにはイテレータやカウンタが紐づいてるから それを使って for (auto& x : なんとか) { for (auto& y : なんとか) { .break x; } } とかどうだろ? for以外で使えないしforでも宣言空だとだめだけど 頻繁に使うわけじゃないだろうから妥協できるかなと
46 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 13:02:13 ID:YFAnTUnh.net] BASIC
47 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 13:03:32 ID:+WgC03YT.net] なにそのセンスの欠片もない気持ち悪いコード
48 名前:デフォルトの名無しさん [2020/02/01(土) 13:19:23.65 ID:fiLTG5Nb.net] while(){} や do{}while(); で使えないので却下
49 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 15:04:44.31 ID:7G0Z2VlM.net] for(int x = 0; i < ... ) { int y = 0; LOOP: a[x][y]... ++y; if(...){ break; /*多重ループ脱出*/ } goto LOOP; }
50 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 16:42:25 ID:hd+by06W.net] >>37 何個の break を書くのか、と break の後に書く数字は? で 結局のところ同じように数えなきゃならないでしょ。
51 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 17:21:08.52 ID:9BMLg08w.net] >>32 はcontinue
52 名前:を混ぜられるのが面白いけど、やるならこうだな。 break n; continue n; [] [ここ壊れてます]
53 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 17:34:30.73 ID:pUJoLXPw.net] こういうしょーもないシンタックスの話って馬鹿でもしやすいのが盛り上がる理由なんだろうな。
54 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 17:48:52.85 ID:YFAnTUnh.net] 特定の言語のスレ シンタックスを語らずに何を語る?
55 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 17:51:10.61 ID:YFAnTUnh.net] >>50 じゃあそれで
56 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 17:55:08.95 ID:YFAnTUnh.net] break 9; を数えたく無いとか言ってたヤツがいたけど そういう時は素直にgotoを使えば良い
57 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 17:55:47.26 ID:rsRLlL5x.net] てか継続が欲しい
58 名前:はちみつ餃子 mailto:sage [2020/02/01(土) 18:08:11.40 ID:6nnXKMBq.net] >>55 C++ ではオブジェクトの寿命の管理と辻褄を合わせなきゃならないんだから full continuation は無理だぞ。
59 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 18:09:32.76 ID:YFAnTUnh.net] 継続とは?
60 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 18:12:05.70 ID:YFAnTUnh.net] setjmp のことか
61 名前:デフォルトの名無しさん [2020/02/01(土) 18:12:34.25 ID:Bc9LjLbW.net] ループに名前を付け、その名前で離脱や継続を行う。 ループA {
62 名前:デフォルトの名無しさん [2020/02/01(土) 18:16:20.88 ID:Bc9LjLbW.net] 途中で送信してしまった。面倒だから書き直さないが、 breakやcontinueはキーワードが紛らわしいのでPerlのlastとnextを拝借する。 last ループA; とか next ループA; みたいな感じ。
63 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 18:16:45.14 ID:YFAnTUnh.net] わざわざ名前を付けるならgotoで良いんでは?
64 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 18:18:49.32 ID:vKrtBnhX.net] gcc5ぐらいから一気にgcc10にしたらエラー表示とかデフォルトの警告とか色々変わっててわろた
65 名前:デフォルトの名無しさん [2020/02/01(土) 18:19:46.95 ID:Bc9LjLbW.net] >>61 まあね。だけどgotoはフリーダムすぎて良くないでしょ。
66 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 18:34:11.57 ID:YFAnTUnh.net] いや全然そう思わない gotoで何か不都合がある?
67 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 18:52:41.69 ID:pUJoLXPw.net] >>52 コンパイラ毎の最適化における癖とか、例外の実装についての差異なんかも語ってもいいんだぞ。
68 名前:はちみつ餃子 mailto:sage [2020/02/01(土) 18:56:33.52 ID:6nnXKMBq.net] >>63 goto は自由すぎるけども、ループを何段階も一気に抜けたいとかいう状況がすでにだいぶん自由だと思うぞ。 そういう状況が生まれたらもう駄目なんだよ。 ごちゃごちゃとした使い分けを考えるよりおとなしく goto した方が「そこが悪い」ってのが目立って良い。
69 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 19:01:47.00 ID:YFAnTUnh.net] 一番使いたいのは2段break 行列や画像など2次元構造では当たり前のように2重ループになる 2重ループを抜けたい状況は設計が悪い と思う感覚が全く理解できない
70 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 19:01:49.68 ID:TULylXcw.net] 構造化を壊さないことを保証した仕組みで脱出したいってことでしょ
71 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 19:04:12.92 ID:YFAnTUnh.net] 2次元構造の2個のループを抜ける為に 非常に関連のある2個のループを別関数に分ける この方が設計が悪い というのがおれの感覚
72 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 19:07:14.52 ID:JWECbGc7.net] >>67 gotoは悪、多重ループは悪、みたいなどこかで聞いたルールを杓子定規に常に遵守すべき絶対ルールのように考える人が少なからずいるんだろうね。声が大きいだけかもしれないけど。
73 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 19:09:12.42 ID:PjJtYhAX.net] gotoの利用にコンパイラの補佐があればよかったのに
74 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 19:10:50.63 ID:PjJtYhAX.net] 中カッコ、変数の有効範囲含め スコープ内に飛び込むジャンプを一切禁止、前方のみと決めれば なかなか直観的でわかりやすいキーワード だとおもうのに
75 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 19:19:24.65 ID:YFAnTUnh.net] 一切禁止とか言うから それが絶対だと初心者が思って思考停止する この典型がgoto 使った方が良い時は使う 再帰も生ポもグローバル変数も多重継承も多重ループも
76 名前:はちみつ餃子 mailto:sage [2020/02/01(土) 19:25:00.72 ID:6nnXKMBq.net] >>67 ここでワイが「悪い」って言ってるのは使うなとか別の方法がとれるとかいうほどの強い意味じゃなくてさ、 気を付けなきゃならないポイントとして目立ってもらわなきゃ困るって程度の意味。 だけど、日常的にそこら中でそういうポイントがあるのならやっぱり悪いとは思うけど……。
77 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 19:26:16.45 ID:j/qpVk5O.net] 二重ループの脱出は [&]{ for(){ for(){ return; } }}(); で結論出たはずだが
78 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 19:29:49 ID:YFAnTUnh.net] これはひどい
79 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 19:44:49 ID:PjJtYhAX.net] それオーバーヘッドかからんの?
80 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 19:47:58 ID:j/qpVk5O.net] 関数オブジェクトはまともなコンパイラならインライン展開される
81 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 19:48:45 ID:7G0Z2VlM.net] 贅沢言いすぎだね 素のPascalなんてreturnすら無いからね もはやどうやってプログラムを書いたらいいか分からないレベル
82 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 19:53:54 ID:7G0Z2VlM.net] Pascalは完璧な構造化言語を目指したから 入口と出口を常に一つずつにするというポリシーがあって それゆえreturnが無いんだよね returnがあると出口があちこちに散らばるので 構造化じゃない、汚い、という考え なお、breakは有るもよう
83 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 19:58:58 ID:+WgC03YT.net] [&]{ try{ for(){ for(){ throw 0; } }catch(...){} }}();
84 名前:はちみつ餃子 ◆8X2XSCHEME mailto:sage [2020/02/01(土) 20:02:08 ID:6nnXKMBq.net] 抽象的なレベルで考えたら break は 「残りの文が if 式で囲まれていると見なして暗黙のフラグを設定する (そのフラグは暗黙にループの終了条件でもある)」 とも考えられるから、構文糖だといえば構造化は壊れていない。 だけどなぁ、プログラムは人が書くものだし、人にとってどう見えるかも大事なんだよな。 そこらへんは見方によってどうとでも理屈を付けられてしまう。
85 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 20:04:46 ID:+WgC03YT.net] [&]{ try{ for(){ for(){ throw 2; } } }catch(int d) {printf("%d段階ジャンプしたお¥n",d);} }();
86 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 20:10:07 ID:tav2AwxI.net] >>82 break 2 も gotoでループを抜けるのも同じ
87 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 20:24:42 ID:iBA7Xa3w.net] >>83 それは最悪 throw 3; って書いてもチェックされないし
88 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 20:47:35 ID:BhmlSyWc.net] >>67 3重ループは? 4重ループは? なんで2だけなの?
89 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 20:52:34 ID:TULylXcw.net] たまに国語力が心配になるやつがいるよな
90 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 20:53:59 ID:+WgC03YT.net] [&]{ try{ for(){ for(){ throw "リレミト"; } } }catch(const char*s) {printf("%sの呪文を唱えた¥n",s);} }();
91 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 20:56:56 ID:BhmlSyWc.net] >>87 答えられないならレスしないで下さい ウザいだけです
92 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 21:07:19.54 ID:vKrtBnhX.net] for () { for () { goto done; } } done: どう考えてもこちらのほうが綺麗
93 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 21:09:23.19 ID:BhmlSyWc.net] >>90 だな 必要になったことを変に偽装する悪癖を治すべき病人多すぎ
94 名前:はちみつ餃子 mailto:sage [2020/02/01(土) 21:14:53.51 ID:6nnXKMBq.net] ほんまになぁ。 そんな簡単なことをラベル付き break だのなんだのって面倒なだけとしか思えぬ。 もう構造化は破綻してるんだからおとなしく goto しとけよな!
95 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 21:19:44 ID:dP/tym/A.net] >>89 日本語が不得意みたいなので英語で説明しますね Double loop frequently appears to treat a two dimension structure such as matrix or image data, so "break from double loop"is used by programmers related mathematical or visual product. >>67 states that is good reason and s not always bad design.
96 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 21:22:30 ID:BhmlSyWc.net] >>93 意味わかんね なんでそんなことするの? アホだから? それともバカだから?
97 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 21:25:42.92 ID:dP/tym/A.net] >>94 It's purely kindness for non-Japanese speaker. Did you not like it?
98 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 21:26:06.76 ID:tav2AwxI.net] >>92 構造化的には breakも途中でreturnもgotoでループを抜けるのも同じだよ
99 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 21:26:27.45 ID:BhmlSyWc.net] Пожалуйста, говорите по-японски.
100 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 21:29:34.25 ID:dP/tym/A.net] なんだロシア人か Я не понимаю >>67 , потому что я не понимаю японский?
101 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 21:32:56.91 ID:tav2AwxI.net]
102 名前:はちみつ餃子 mailto:sage [2020/02/01(土) 21:34:56.10 ID:6nnXKMBq.net] >>96 同じだからそれ以上に新しい文法を持ち込んでもそれほど綺麗にならんって! ということを言いたい。
103 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 21:36:54 ID:BhmlSyWc.net] >>98 Mimi ni Kijapani.
104 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 21:38:38 ID:TULylXcw.net] >>96 gotoは正しく使えばという但し書きがつくでしょ そこをなんとかしたいという話だと思ってる それが論点だとするとgoto使えというのは解にならない
105 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 21:40:19 ID:BhmlSyWc.net] >>96 ほんこれ
106 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 21:42:54 ID:tav2AwxI.net] >>102 正しく使う前提なのは当たり前 なんでgotoだと正しく使わない前提になるのか不思議
107 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 21:43:54 ID:BhmlSyWc.net] >>104 ほんこれ
108 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 21:48:36 ID:7G0Z2VlM.net] 危ない操作はできないようにしようってのが言語の進化だからな それ無視して、安全に使うのが前提とか、正しく使うのが前提とか、それ言っちゃね なんかおかしな方向へ行くよね
109 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 21:48:59 ID:TULylXcw.net] >>104 構造化プログラミングの概念は知ってるんだよね?
110 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 21:50:07 ID:7G0Z2VlM.net] gotoを正しくしか使えないように改良したのがreturn、break、continue ってことも忘れずに
111 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 21:54:44 ID:BhmlSyWc.net] >>104 構造化プログラミングでは使わない制御構造を 使うべきでない理由が構造化プログラミングって論法に 抜け出せない枠があるとは思わないの? >>108 continueだけ、それで正解なんだが 他はみんな間違ってるよ
112 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 21:57:47 ID:7G0Z2VlM.net] 見てください皆さん、ID:BhmlSyWc ← ひどいですよ まず何言ってるか分からない このレベルはきついな
113 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 22:02:32 ID:tav2AwxI.net] >>106 どの辺からgotoが危ない操作だと思うの?
114 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 22:06:43 ID:vKrtBnhX.net] まあ1万行ある関数の中で、5千行目ぐらいにgotoがあって、ラベルが関数の先頭付近にあるとか、それに近いのは見たことあるが、あれはどう考えてもgotoの悪い例だからな 包丁で味噌汁食ってるようなもん
115 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 22:06:57 ID:BhmlSyWc.net] >>110 きつくて気の毒だな 不勉強なやつは自業自得なので同情はしない
116 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 22:08:59 ID:BhmlSyWc.net] >>112 1万行か・・・これ↓より重症だなw www.pro.or.jp/~fuji/mybooks/cdiag/cdiag.10.4.html
117 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 22:11:31 ID:tav2AwxI.net] 不定値や無限ループの危険はgotoに限ったことじゃないし ループを抜けるgotoには関係ない話 goto特有の危険な場面 何を心配してるんだろう 酸っぱいブドウ?
118 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 22:16:09.36 ID:TULylXcw.net] だめだこりゃ
119 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 22:19:01.58 ID:7G0Z2VlM.net] gotoはどこへ飛ぶか分からないから読みにくいんだよ 前に飛ぶのか、後ろに飛ぶのか、それすら分からない 飛び先を分かりやすく改良したのがreturn、break、continue それぞれ飛び先が決まっているから追うのが楽 その英知が分からんっていうならreturn、break、continueを使わずに 全部gotoでやれば?って話
120 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 22:22:45.11 ID:tav2AwxI.net] 関数なんてもっとどこに飛ぶかわからんぞ
121 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 22:25:22 ID:tav2AwxI.net] どこに飛ぶかわかる名前にするってのが普通の発想 意味でも構造でも文章でも好きな名前を付けられる 関数も変数も名前空間も全てそう
122 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 22:25:32 ID:TULylXcw.net] gotoは中にも飛べるの知らないんじゃないこの人
123 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 22:25:55 ID:BhmlSyWc.net] >>117 飛び先じゃなく飛ぶこと自体の問題なんだがw
124 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 22:26:20 ID:7G0Z2VlM.net] つまりはそういう話で、追いやすいように飛び先を制限したいよねーってのが根底に有って (当然そういうのが念頭にあってreturn,break,continueは生まれたわけで、前例に倣いたい所) それでブロックに名前を付けるだのbreak 2だのって書き込んでいる人がいるわけで gotoでいいんじゃね?っていうなら、return,break,continueもgotoでいいんじゃね? むしろforやwhileもgotoでいいんじゃね?gotoを正しく使えばいいんだろ?ってなる
125 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 22:26:36 ID:TULylXcw.net] 構造化プログラミング知らずにgotoいきって使うのはさすがにやばい
126 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 22:28:23 ID:BhmlSyWc.net] >>122 どうなっていれば「追いやすい」のかを まず明らかにしようぜ 俺ルールでもいいし 広く認知されているルールでもいいし
127 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 22:31:09 ID:7G0Z2VlM.net] 巻数はどこに飛ぶか分からないが、必ず元に戻ってくる(のが基本) 行きっぱなしというか、ただのジャンプのgotoやらbreakやらとは違うのだよ 関数のコールは入口と出口が一つになってて非常に構造化されてる好例 こういうところ分からないってのはセンスないよ
128 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 22:32:56 ID:7G0Z2VlM.net] 巻数→関数
129 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 22:35:10.84 ID:tav2AwxI.net] 使い所でgotoが使えないのはセンス無い 使い所でgptoを使わないのはコードが見にくい 使い所でgotoを使わないのは危険なコード goto否定派にレベルを合わせた主張をするとこんな感じ
130 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 22:42:27.15 ID:TULylXcw.net] やっぱりこいつダメだな 知性がない
131 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 22:44:49.19 ID:tav2AwxI.net] 使い所でgotoを使わないのは知性が無い
132 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 22:45:34.37 ID:7G0Z2VlM.net] 本心では誰もgotoは否定していないんじゃないかな 今は多段breakの機能が無いんだからgotoを使えばいいだろう しかし、もしgotoを使わないで済む多段breakの新機能があったのなら それを使ったほうがいいだろうし じゃーその新機能はどんなものが考えられるか?って遊びだろ? ブロックに名前付けるだとかbreak nだとかは
133 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 22:50:41.91 ID:wBNP08tW.net] 多段breakは考えた奴は脳味噌が糞すぐる… ループの深さを変えたとたんにバグるじゃん? ループの深さは金輪際変えないとか ループの深さを変えるとき必ずループ全体を机上確認するとかだったら gotoでも逝けるじゃん??
134 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 22:53:08.37 ID:vKrtBnhX.net] ああ、そうだな break 2だとfor文が3重になったときにバグるな 個人的には面白いと思ったが
135 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 22:53:40.31 ID:tav2AwxI.net] 使い所は2次元構造の2重ループとかだよ
136 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 22:55:40.65 ID:rsRLlL5x.net] 画像処理とかで2重ループ良く書くけど、最近2段階breakしたくなった記憶がないな 実は要らないんじゃね
137 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 22:56:47 ID:tav2AwxI.net] じゃあbreakもいらないんじゃない?
138 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 22:59:11 ID:7G0Z2VlM.net] まーC++がプリプロセッサを殺すために進化しているのと同様 Cはgotoを殺すために進化したともいえるわけで たとえば、関数、for、return、などなど、制御構造にかかわるほとんどの物が gotoを殺すために有るといってもよい だから、もっとgotoを殺すにはどうすればよいか、考えるのは自然な発想かと C++でもテンプレートなどで出来ないことはプリプロセッサでしなければならないし ただ、同じことがテンプレートとかで出来るならそのほうが良いだろうし もっとプリプロセッサを殺すためにはどういう機能を追加すればよいか考えるのは自然な事だろう 同じ同じ