C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。
IDE (VC++など)などの使い方の質問はその開発環境のスレにお願いします。
前スレ
C++相談室 part147
https://mevius.5ch.net/test/read.cgi/tech/1576659413/
このスレもよろしくね。
【初心者歓迎】C/C++室 Ver.105【環境依存OK】
http://mevius.5ch.net/test/read.cgi/tech/1556142878/
■長いソースを貼るときはここへ。■
http://codepad.org/
https://ideone.com/
[C++ FAQ]
https://isocpp.org/wiki/faq/
http://www.bohyoh.com/CandCPP/FAQ/ (日本語)
C++相談室 part148
■ このスレッドは過去ログ倉庫に格納されています
2020/01/31(金) 20:54:06.26ID:Nt0XFA2s
2020/02/01(土) 20:04:46.46ID:+WgC03YT
[&]{
try{
for(){
for(){
throw 2;
}
}
}catch(int d)
{printf("%d段階ジャンプしたお¥n",d);}
}();
try{
for(){
for(){
throw 2;
}
}
}catch(int d)
{printf("%d段階ジャンプしたお¥n",d);}
}();
2020/02/01(土) 20:10:07.66ID:tav2AwxI
>>82
break 2 も gotoでループを抜けるのも同じ
break 2 も gotoでループを抜けるのも同じ
2020/02/01(土) 20:24:42.41ID:iBA7Xa3w
2020/02/01(土) 20:47:35.89ID:BhmlSyWc
>>67
3重ループは? 4重ループは? なんで2だけなの?
3重ループは? 4重ループは? なんで2だけなの?
2020/02/01(土) 20:52:34.51ID:TULylXcw
たまに国語力が心配になるやつがいるよな
2020/02/01(土) 20:53:59.21ID:+WgC03YT
[&]{
try{
for(){
for(){
throw "リレミト";
}
}
}catch(const char*s)
{printf("%sの呪文を唱えた¥n",s);}
}();
try{
for(){
for(){
throw "リレミト";
}
}
}catch(const char*s)
{printf("%sの呪文を唱えた¥n",s);}
}();
2020/02/01(土) 20:56:56.11ID:BhmlSyWc
2020/02/01(土) 21:07:19.54ID:vKrtBnhX
for () {
for () {
goto done;
}
}
done:
どう考えてもこちらのほうが綺麗
for () {
goto done;
}
}
done:
どう考えてもこちらのほうが綺麗
2020/02/01(土) 21:09:23.19ID:BhmlSyWc
92はちみつ餃子 ◆8X2XSCHEME
2020/02/01(土) 21:14:53.51ID:6nnXKMBq ほんまになぁ。
そんな簡単なことをラベル付き break だのなんだのって面倒なだけとしか思えぬ。
もう構造化は破綻してるんだからおとなしく goto しとけよな!
そんな簡単なことをラベル付き break だのなんだのって面倒なだけとしか思えぬ。
もう構造化は破綻してるんだからおとなしく goto しとけよな!
2020/02/01(土) 21:19:44.00ID:dP/tym/A
2020/02/01(土) 21:22:30.66ID:BhmlSyWc
2020/02/01(土) 21:25:42.92ID:dP/tym/A
>>94
It's purely kindness for non-Japanese speaker. Did you not like it?
It's purely kindness for non-Japanese speaker. Did you not like it?
2020/02/01(土) 21:26:06.76ID:tav2AwxI
2020/02/01(土) 21:26:27.45ID:BhmlSyWc
Пожалуйста, говорите по-японски.
2020/02/01(土) 21:29:34.25ID:dP/tym/A
なんだロシア人か
Я не понимаю >>67, потому что я не понимаю японский?
Я не понимаю >>67, потому что я не понимаю японский?
2020/02/01(土) 21:32:56.91ID:tav2AwxI
100はちみつ餃子 ◆8X2XSCHEME
2020/02/01(土) 21:34:56.10ID:6nnXKMBq >>96
同じだからそれ以上に新しい文法を持ち込んでもそれほど綺麗にならんって! ということを言いたい。
同じだからそれ以上に新しい文法を持ち込んでもそれほど綺麗にならんって! ということを言いたい。
101デフォルトの名無しさん
2020/02/01(土) 21:36:54.68ID:BhmlSyWc >>98
Mimi ni Kijapani.
Mimi ni Kijapani.
102デフォルトの名無しさん
2020/02/01(土) 21:38:38.94ID:TULylXcw103デフォルトの名無しさん
2020/02/01(土) 21:40:19.97ID:BhmlSyWc >>96
ほんこれ
ほんこれ
104デフォルトの名無しさん
2020/02/01(土) 21:42:54.84ID:tav2AwxI105デフォルトの名無しさん
2020/02/01(土) 21:43:54.40ID:BhmlSyWc >>104
ほんこれ
ほんこれ
106デフォルトの名無しさん
2020/02/01(土) 21:48:36.93ID:7G0Z2VlM 危ない操作はできないようにしようってのが言語の進化だからな
それ無視して、安全に使うのが前提とか、正しく使うのが前提とか、それ言っちゃね
なんかおかしな方向へ行くよね
それ無視して、安全に使うのが前提とか、正しく使うのが前提とか、それ言っちゃね
なんかおかしな方向へ行くよね
107デフォルトの名無しさん
2020/02/01(土) 21:48:59.21ID:TULylXcw >>104
構造化プログラミングの概念は知ってるんだよね?
構造化プログラミングの概念は知ってるんだよね?
108デフォルトの名無しさん
2020/02/01(土) 21:50:07.81ID:7G0Z2VlM gotoを正しくしか使えないように改良したのがreturn、break、continue
ってことも忘れずに
ってことも忘れずに
109デフォルトの名無しさん
2020/02/01(土) 21:54:44.41ID:BhmlSyWc110デフォルトの名無しさん
2020/02/01(土) 21:57:47.27ID:7G0Z2VlM 見てください皆さん、ID:BhmlSyWc ← ひどいですよ
まず何言ってるか分からない
このレベルはきついな
まず何言ってるか分からない
このレベルはきついな
111デフォルトの名無しさん
2020/02/01(土) 22:02:32.59ID:tav2AwxI >>106
どの辺からgotoが危ない操作だと思うの?
どの辺からgotoが危ない操作だと思うの?
112デフォルトの名無しさん
2020/02/01(土) 22:06:43.33ID:vKrtBnhX まあ1万行ある関数の中で、5千行目ぐらいにgotoがあって、ラベルが関数の先頭付近にあるとか、それに近いのは見たことあるが、あれはどう考えてもgotoの悪い例だからな
包丁で味噌汁食ってるようなもん
包丁で味噌汁食ってるようなもん
113デフォルトの名無しさん
2020/02/01(土) 22:06:57.37ID:BhmlSyWc114デフォルトの名無しさん
2020/02/01(土) 22:08:59.52ID:BhmlSyWc115デフォルトの名無しさん
2020/02/01(土) 22:11:31.06ID:tav2AwxI 不定値や無限ループの危険はgotoに限ったことじゃないし
ループを抜けるgotoには関係ない話
goto特有の危険な場面
何を心配してるんだろう
酸っぱいブドウ?
ループを抜けるgotoには関係ない話
goto特有の危険な場面
何を心配してるんだろう
酸っぱいブドウ?
116デフォルトの名無しさん
2020/02/01(土) 22:16:09.36ID:TULylXcw だめだこりゃ
117デフォルトの名無しさん
2020/02/01(土) 22:19:01.58ID:7G0Z2VlM gotoはどこへ飛ぶか分からないから読みにくいんだよ
前に飛ぶのか、後ろに飛ぶのか、それすら分からない
飛び先を分かりやすく改良したのがreturn、break、continue
それぞれ飛び先が決まっているから追うのが楽
その英知が分からんっていうならreturn、break、continueを使わずに
全部gotoでやれば?って話
前に飛ぶのか、後ろに飛ぶのか、それすら分からない
飛び先を分かりやすく改良したのがreturn、break、continue
それぞれ飛び先が決まっているから追うのが楽
その英知が分からんっていうならreturn、break、continueを使わずに
全部gotoでやれば?って話
118デフォルトの名無しさん
2020/02/01(土) 22:22:45.11ID:tav2AwxI 関数なんてもっとどこに飛ぶかわからんぞ
119デフォルトの名無しさん
2020/02/01(土) 22:25:22.98ID:tav2AwxI どこに飛ぶかわかる名前にするってのが普通の発想
意味でも構造でも文章でも好きな名前を付けられる
関数も変数も名前空間も全てそう
意味でも構造でも文章でも好きな名前を付けられる
関数も変数も名前空間も全てそう
120デフォルトの名無しさん
2020/02/01(土) 22:25:32.73ID:TULylXcw gotoは中にも飛べるの知らないんじゃないこの人
121デフォルトの名無しさん
2020/02/01(土) 22:25:55.92ID:BhmlSyWc >>117
飛び先じゃなく飛ぶこと自体の問題なんだがw
飛び先じゃなく飛ぶこと自体の問題なんだがw
122デフォルトの名無しさん
2020/02/01(土) 22:26:20.90ID:7G0Z2VlM つまりはそういう話で、追いやすいように飛び先を制限したいよねーってのが根底に有って
(当然そういうのが念頭にあってreturn,break,continueは生まれたわけで、前例に倣いたい所)
それでブロックに名前を付けるだのbreak 2だのって書き込んでいる人がいるわけで
gotoでいいんじゃね?っていうなら、return,break,continueもgotoでいいんじゃね?
むしろforやwhileもgotoでいいんじゃね?gotoを正しく使えばいいんだろ?ってなる
(当然そういうのが念頭にあってreturn,break,continueは生まれたわけで、前例に倣いたい所)
それでブロックに名前を付けるだのbreak 2だのって書き込んでいる人がいるわけで
gotoでいいんじゃね?っていうなら、return,break,continueもgotoでいいんじゃね?
むしろforやwhileもgotoでいいんじゃね?gotoを正しく使えばいいんだろ?ってなる
123デフォルトの名無しさん
2020/02/01(土) 22:26:36.74ID:TULylXcw 構造化プログラミング知らずにgotoいきって使うのはさすがにやばい
124デフォルトの名無しさん
2020/02/01(土) 22:28:23.87ID:BhmlSyWc125デフォルトの名無しさん
2020/02/01(土) 22:31:09.71ID:7G0Z2VlM 巻数はどこに飛ぶか分からないが、必ず元に戻ってくる(のが基本)
行きっぱなしというか、ただのジャンプのgotoやらbreakやらとは違うのだよ
関数のコールは入口と出口が一つになってて非常に構造化されてる好例
こういうところ分からないってのはセンスないよ
行きっぱなしというか、ただのジャンプのgotoやらbreakやらとは違うのだよ
関数のコールは入口と出口が一つになってて非常に構造化されてる好例
こういうところ分からないってのはセンスないよ
126デフォルトの名無しさん
2020/02/01(土) 22:32:56.84ID:7G0Z2VlM 巻数→関数
127デフォルトの名無しさん
2020/02/01(土) 22:35:10.84ID:tav2AwxI 使い所でgotoが使えないのはセンス無い
使い所でgptoを使わないのはコードが見にくい
使い所でgotoを使わないのは危険なコード
goto否定派にレベルを合わせた主張をするとこんな感じ
使い所でgptoを使わないのはコードが見にくい
使い所でgotoを使わないのは危険なコード
goto否定派にレベルを合わせた主張をするとこんな感じ
128デフォルトの名無しさん
2020/02/01(土) 22:42:27.15ID:TULylXcw やっぱりこいつダメだな
知性がない
知性がない
129デフォルトの名無しさん
2020/02/01(土) 22:44:49.19ID:tav2AwxI 使い所でgotoを使わないのは知性が無い
130デフォルトの名無しさん
2020/02/01(土) 22:45:34.37ID:7G0Z2VlM 本心では誰もgotoは否定していないんじゃないかな
今は多段breakの機能が無いんだからgotoを使えばいいだろう
しかし、もしgotoを使わないで済む多段breakの新機能があったのなら
それを使ったほうがいいだろうし
じゃーその新機能はどんなものが考えられるか?って遊びだろ?
ブロックに名前付けるだとかbreak nだとかは
今は多段breakの機能が無いんだからgotoを使えばいいだろう
しかし、もしgotoを使わないで済む多段breakの新機能があったのなら
それを使ったほうがいいだろうし
じゃーその新機能はどんなものが考えられるか?って遊びだろ?
ブロックに名前付けるだとかbreak nだとかは
131デフォルトの名無しさん
2020/02/01(土) 22:50:41.91ID:wBNP08tW 多段breakは考えた奴は脳味噌が糞すぐる…
ループの深さを変えたとたんにバグるじゃん?
ループの深さは金輪際変えないとか
ループの深さを変えるとき必ずループ全体を机上確認するとかだったら
gotoでも逝けるじゃん??
ループの深さを変えたとたんにバグるじゃん?
ループの深さは金輪際変えないとか
ループの深さを変えるとき必ずループ全体を机上確認するとかだったら
gotoでも逝けるじゃん??
132デフォルトの名無しさん
2020/02/01(土) 22:53:08.37ID:vKrtBnhX ああ、そうだな
break 2だとfor文が3重になったときにバグるな
個人的には面白いと思ったが
break 2だとfor文が3重になったときにバグるな
個人的には面白いと思ったが
133デフォルトの名無しさん
2020/02/01(土) 22:53:40.31ID:tav2AwxI 使い所は2次元構造の2重ループとかだよ
134デフォルトの名無しさん
2020/02/01(土) 22:55:40.65ID:rsRLlL5x 画像処理とかで2重ループ良く書くけど、最近2段階breakしたくなった記憶がないな
実は要らないんじゃね
実は要らないんじゃね
135デフォルトの名無しさん
2020/02/01(土) 22:56:47.94ID:tav2AwxI じゃあbreakもいらないんじゃない?
136デフォルトの名無しさん
2020/02/01(土) 22:59:11.96ID:7G0Z2VlM まーC++がプリプロセッサを殺すために進化しているのと同様
Cはgotoを殺すために進化したともいえるわけで
たとえば、関数、for、return、などなど、制御構造にかかわるほとんどの物が
gotoを殺すために有るといってもよい
だから、もっとgotoを殺すにはどうすればよいか、考えるのは自然な発想かと
C++でもテンプレートなどで出来ないことはプリプロセッサでしなければならないし
ただ、同じことがテンプレートとかで出来るならそのほうが良いだろうし
もっとプリプロセッサを殺すためにはどういう機能を追加すればよいか考えるのは自然な事だろう
同じ同じ
Cはgotoを殺すために進化したともいえるわけで
たとえば、関数、for、return、などなど、制御構造にかかわるほとんどの物が
gotoを殺すために有るといってもよい
だから、もっとgotoを殺すにはどうすればよいか、考えるのは自然な発想かと
C++でもテンプレートなどで出来ないことはプリプロセッサでしなければならないし
ただ、同じことがテンプレートとかで出来るならそのほうが良いだろうし
もっとプリプロセッサを殺すためにはどういう機能を追加すればよいか考えるのは自然な事だろう
同じ同じ
goto とか break とか continue とか、他の言語(javaとか)でもいろいろ小手先的に弄られているけれども、それに何の意味があるのかいつも不思議におもいますね
C/C++ の goto とかはどう頑張っても関数の中でだけしか跳べないのだから、BASIC の GOTO ほどにはスパゲッティ状態を招けないのではと考えます
無論、その関数が異様にデカければ別ですが、そんなデカい関数を書くほうが問題であって goto が問題なのではないかと
C/C++ の goto とかはどう頑張っても関数の中でだけしか跳べないのだから、BASIC の GOTO ほどにはスパゲッティ状態を招けないのではと考えます
無論、その関数が異様にデカければ別ですが、そんなデカい関数を書くほうが問題であって goto が問題なのではないかと
138デフォルトの名無しさん
2020/02/01(土) 23:11:38.33ID:tav2AwxI ループを抜ける為にだけ使われる変数を使ったループ抜け
世の中にはたくさんこういうコードがある
たくさんのコードを見る機会がある人なら
たくさん見たことがあるはず
gotoネガティブキャンペーンのせいだよ
世の中にはたくさんこういうコードがある
たくさんのコードを見る機会がある人なら
たくさん見たことがあるはず
gotoネガティブキャンペーンのせいだよ
139デフォルトの名無しさん
2020/02/01(土) 23:11:46.92ID:JWECbGc7 >>136
gotoが使わないで済むように進化してくのは期待している。
ただ現状として、多重ループを抜ける場合みたいにgotoを使うのがシンプルで分かりやすいならば、毛嫌いしたり盲目的に原則振りかざすよりgoto使えばいいだけのことだと思うよ。
gotoが使わないで済むように進化してくのは期待している。
ただ現状として、多重ループを抜ける場合みたいにgotoを使うのがシンプルで分かりやすいならば、毛嫌いしたり盲目的に原則振りかざすよりgoto使えばいいだけのことだと思うよ。
140デフォルトの名無しさん
2020/02/01(土) 23:32:29.85ID:TULylXcw >>138
お前ほんとに病気だな
多重ループ脱出でgotoが簡潔なのはみなわかってる
でもgotoは自由度が高すぎて構造を壊す可能性があるわけ
だから改善するとしたら何があるかという話をしてるだけであって
別にgoto禁止とかの話はしてない
好きなだけ使ってろよ
あと構造化プログラミングぐらい知っとけ
お前ほんとに病気だな
多重ループ脱出でgotoが簡潔なのはみなわかってる
でもgotoは自由度が高すぎて構造を壊す可能性があるわけ
だから改善するとしたら何があるかという話をしてるだけであって
別にgoto禁止とかの話はしてない
好きなだけ使ってろよ
あと構造化プログラミングぐらい知っとけ
141デフォルトの名無しさん
2020/02/01(土) 23:45:45.20ID:tav2AwxI >>140
色々と違う
色々と違う
142デフォルトの名無しさん
2020/02/01(土) 23:46:54.20ID:vKrtBnhX for () {
break label;
} label;
for () {
for () {
break label1
} label2;
} label1;
こういう風にfor文のお尻にラベルを付けられるようにすれば局所化したgoto風のbreakが使えるのでは
break label;
} label;
for () {
for () {
break label1
} label2;
} label1;
こういう風にfor文のお尻にラベルを付けられるようにすれば局所化したgoto風のbreakが使えるのでは
143デフォルトの名無しさん
2020/02/01(土) 23:48:30.11ID:tav2AwxI for () {
goto label;
} label:;
for () {
for () {
goto label1;
} label2:;
} label1:;
goto label;
} label:;
for () {
for () {
goto label1;
} label2:;
} label1:;
144デフォルトの名無しさん
2020/02/01(土) 23:49:00.26ID:tav2AwxI 今でも出来る
145デフォルトの名無しさん
2020/02/01(土) 23:49:30.89ID:wBNP08tW Pythonはループにラベルをつける手が使えた
と思った(幻覚でなければ
と思った(幻覚でなければ
146デフォルトの名無しさん
2020/02/01(土) 23:52:18.24ID:pUJoLXPw またgotoの話になってんのかよ。。
だからいっそ禁止にと思ったが、それよりもさらにクソな構文の提案が出てたり。。
想定を超えた馬鹿どもばっかりじゃねーか。
だからいっそ禁止にと思ったが、それよりもさらにクソな構文の提案が出てたり。。
想定を超えた馬鹿どもばっかりじゃねーか。
147デフォルトの名無しさん
2020/02/01(土) 23:54:48.66ID:tav2AwxI 無理に会話に入って来なくて良いよ
148デフォルトの名無しさん
2020/02/01(土) 23:59:22.03ID:7G0Z2VlM ただ、凝りに凝った複雑怪奇なテンプレートより
シンプルに作ったマクロの方が読みやすいって事例も当然あるだろうよ
てか、わりと、最近、残念ながらその傾向が・・・で、C++が嫌われる理由にも・・・
だからgotoを殺すのも上手くやらないとむしろ酷くなる
そこが腕の振るいどころで面白い部分でもあるし、言語作ってる連中もそんなことで頭いっぱい
変なゲーム性が有って、逆にそれがまたダメな部分でもあって
あと、妹大好き
シンプルに作ったマクロの方が読みやすいって事例も当然あるだろうよ
てか、わりと、最近、残念ながらその傾向が・・・で、C++が嫌われる理由にも・・・
だからgotoを殺すのも上手くやらないとむしろ酷くなる
そこが腕の振るいどころで面白い部分でもあるし、言語作ってる連中もそんなことで頭いっぱい
変なゲーム性が有って、逆にそれがまたダメな部分でもあって
あと、妹大好き
149デフォルトの名無しさん
2020/02/02(日) 00:17:33.29ID:rWwvB4I9 多段breakの使用頻度がそれほど多くないことを加味すれば
break n;方式が妥当だろうね
これだと2重ループを3重ループに書き換えたときにバグる、とか
意味不明なことを言ってる奴もいるが
それは1重ループをbreakで抜けてたのを2重ループに書き換えたらバグった
と言ってるのと同じであって、当たり前の話だし、今でも同じことだ
break n;が一番シンプルで妥当だと思うね
break n;方式が妥当だろうね
これだと2重ループを3重ループに書き換えたときにバグる、とか
意味不明なことを言ってる奴もいるが
それは1重ループをbreakで抜けてたのを2重ループに書き換えたらバグった
と言ってるのと同じであって、当たり前の話だし、今でも同じことだ
break n;が一番シンプルで妥当だと思うね
150デフォルトの名無しさん
2020/02/02(日) 00:32:21.06ID:7b/FZYuN breakの後にマジックナンバーを書くのが気に入らない
定数には意味のわかる名前を付けたい
定数には意味のわかる名前を付けたい
151デフォルトの名無しさん
2020/02/02(日) 00:33:00.49ID:rWwvB4I9 ただし、break n;のnの部分が変数でもOKとかなってたらかなりウザいが
そこはnは定数と定めたいね、でもC++の場合は定数と言っても・・・
複雑にしようと思えばいくらでも複雑にできるわなー
普通に使う分には問題ないかと
明日からbreak n;が入っても、たぶん誰も困らないし、混乱も起きないだろう
割のいい賭けだし、俺はアリだと思うね
そこはnは定数と定めたいね、でもC++の場合は定数と言っても・・・
複雑にしようと思えばいくらでも複雑にできるわなー
普通に使う分には問題ないかと
明日からbreak n;が入っても、たぶん誰も困らないし、混乱も起きないだろう
割のいい賭けだし、俺はアリだと思うね
152デフォルトの名無しさん
2020/02/02(日) 00:33:32.69ID:7b/FZYuN breakとbreak nが同じとか意味不明な主張をなさる御仁がいらっしゃるが
じゃあcontinueがcontinue nになったらどんな地獄が発生するか
考えてみたら良い
じゃあcontinueがcontinue nになったらどんな地獄が発生するか
考えてみたら良い
153デフォルトの名無しさん
2020/02/02(日) 00:48:04.23ID:rWwvB4I9 別にcontinue n;
全然ありでしょ
これと同等の事を、何か別の方法でやるよりスマート
for(;;){
bool do_continue = false;
for(;;){
if(...){ do_continue = true; break;}
}
if( do_continue ){ continue; }
}
↓
for(;;){
for(;;){
if(...){ continue 2; }
}
}
全然ありでしょ
これと同等の事を、何か別の方法でやるよりスマート
for(;;){
bool do_continue = false;
for(;;){
if(...){ do_continue = true; break;}
}
if( do_continue ){ continue; }
}
↓
for(;;){
for(;;){
if(...){ continue 2; }
}
}
154デフォルトの名無しさん
2020/02/02(日) 01:00:22.64ID:7b/FZYuN do {
do {
...
if (cond) {
continue 2;
}
} while (副作用の有る式1);
} while (副作用の有る式2);
とから?
do {
...
if (cond) {
continue 2;
}
} while (副作用の有る式1);
} while (副作用の有る式2);
とから?
155デフォルトの名無しさん
2020/02/02(日) 01:03:23.27ID:0Gqmr542 break nなんてやるくらいならbreak label で抜けるループを明示的に指定したいな
↓
ループにラベルをつけるとして、先頭では見づらくて邪魔だな
↓
ループの末尾にラベルを付ければ見やすいけど、それだとlabelついたループを抜けると言うよりlabelの指す位置へのジャンプだな
↓
なんだgotoでいいじゃん
個人的には breakto label という記法でループ出口に書いたラベルに飛べるとするのが分かりやすいと思うけど、こんなことに新しい予約語を導入するくらいならgotoで十分だと思う。
↓
ループにラベルをつけるとして、先頭では見づらくて邪魔だな
↓
ループの末尾にラベルを付ければ見やすいけど、それだとlabelついたループを抜けると言うよりlabelの指す位置へのジャンプだな
↓
なんだgotoでいいじゃん
個人的には breakto label という記法でループ出口に書いたラベルに飛べるとするのが分かりやすいと思うけど、こんなことに新しい予約語を導入するくらいならgotoで十分だと思う。
156デフォルトの名無しさん
2020/02/02(日) 01:06:28.34ID:7b/FZYuN break nが良いとか言ってる椰子は
ついでに行番号も復活してほしいと思っているに違いナス
ついでに行番号も復活してほしいと思っているに違いナス
157デフォルトの名無しさん
2020/02/02(日) 01:15:40.31ID:rWwvB4I9 do{
do{
if(...) goto NEXT;
}while(...);
NEXT;
}while(...);
と等価だろう
要はこういうgotoを置き換えるために作られたのが
continueなのだから、そのルールに従うのが普通だろうね
もしくはgoto使わずにフラグでやっても、どのみち内側のループの条件式は実行されないわけで
do{
bool do_continue = false;
do{
if(...){ do_continue = true; break; }
}while(...);
if(do_continue) continue;
}while(...);
これ以外の解釈ってのは難しい
do{
if(...) goto NEXT;
}while(...);
NEXT;
}while(...);
と等価だろう
要はこういうgotoを置き換えるために作られたのが
continueなのだから、そのルールに従うのが普通だろうね
もしくはgoto使わずにフラグでやっても、どのみち内側のループの条件式は実行されないわけで
do{
bool do_continue = false;
do{
if(...){ do_continue = true; break; }
}while(...);
if(do_continue) continue;
}while(...);
これ以外の解釈ってのは難しい
158デフォルトの名無しさん
2020/02/02(日) 02:23:51.88ID:93obPCeA gotoの話題って今でもこんなに盛り上がるのか
159デフォルトの名無しさん
2020/02/02(日) 02:49:52.74ID:LC7cWz9a 老害が多いから
160デフォルトの名無しさん
2020/02/02(日) 03:26:54.49ID:EDNK6zQt そういう機能要望みたいなのここでやる意味ある?
C++Slackでやった方がよくない?
C++Slackでやった方がよくない?
161デフォルトの名無しさん
2020/02/02(日) 03:45:22.96ID:mzCY/+E0 英語は敷居が高いよ。
162デフォルトの名無しさん
2020/02/02(日) 05:06:46.10ID:DTIMfhpJ ,,-―--、
|:::::::::::::;;;ノ
|::::::::::( 」 <もう構造化は破綻してるんだからおとなしく goto しとけよな!
ノノノ ヽ_l
,,-┴―┴- 、 ∩_
/,|┌-[]─┐| \ ( ノ
/ ヽ| | バ | '、/\ / /
/ `./| | カ | |\ /
\ ヽ| lゝ | | \__/
\ |  ̄ ̄ ̄ |
⊂|______|
|l_l i l_l |
| ┬ |
|:::::::::::::;;;ノ
|::::::::::( 」 <もう構造化は破綻してるんだからおとなしく goto しとけよな!
ノノノ ヽ_l
,,-┴―┴- 、 ∩_
/,|┌-[]─┐| \ ( ノ
/ ヽ| | バ | '、/\ / /
/ `./| | カ | |\ /
\ ヽ| lゝ | | \__/
\ |  ̄ ̄ ̄ |
⊂|______|
|l_l i l_l |
| ┬ |
163デフォルトの名無しさん
2020/02/02(日) 06:40:45.35ID:mzCY/+E0 じゃあswitchも要らないって事じゃないか。
>>149
break n なんて間抜けの極みだと思いますね
java にはラベル付き break が存在して、ほとんど goto です https://www.sejuku.net/blog/20100
break n なんて間抜けの極みだと思いますね
java にはラベル付き break が存在して、ほとんど goto です https://www.sejuku.net/blog/20100
165デフォルトの名無しさん
2020/02/02(日) 07:37:33.82ID:SWo7Ruqh >>136
Cはgoto殺すために進化してねえよ
Cのgotoが関数外に飛べないのはスタック巻戻しのような仕掛けが複雑になりすぎるからで
構造化プログラミングで否定されるからという理由ではない
構造化プログラミングで否定される制御構造を持たないことにするなら
breakやlongjmpは存在できないはずだ
Cはgoto殺すために進化してねえよ
Cのgotoが関数外に飛べないのはスタック巻戻しのような仕掛けが複雑になりすぎるからで
構造化プログラミングで否定されるからという理由ではない
構造化プログラミングで否定される制御構造を持たないことにするなら
breakやlongjmpは存在できないはずだ
166デフォルトの名無しさん
2020/02/02(日) 07:44:05.46ID:pBPOCWQ5 結論が先にあって理由が後付けだから支離滅裂、一貫性の欠片もない事を書く
もはや宗教
もはや宗教
167デフォルトの名無しさん
2020/02/02(日) 07:46:45.45ID:SWo7Ruqh ほんと、宗教だね
洗脳されてるやつは強固に思考停止していて
何を言おうが馬の耳に念仏だ
洗脳されてるやつは強固に思考停止していて
何を言おうが馬の耳に念仏だ
168デフォルトの名無しさん
2020/02/02(日) 08:06:14.41ID:SWo7Ruqh >>159
根底がわかってねえやつが多いからだよ
古典的な基本がわかってねえやつは若造と爺のどっちに多いだろうね
頓珍漢なことを書いて袋叩きにされたからって逆恨みする精神性なやつはどっちに多いだろうね
根底がわかってねえやつが多いからだよ
古典的な基本がわかってねえやつは若造と爺のどっちに多いだろうね
頓珍漢なことを書いて袋叩きにされたからって逆恨みする精神性なやつはどっちに多いだろうね
169デフォルトの名無しさん
2020/02/02(日) 08:18:25.64ID:9aZda2U6 break labelでいいんじゃね
gotoと同じだが、labelがbreak的な位置にない場合コンパイルエラーになれば良い
gotoと同じだが、labelがbreak的な位置にない場合コンパイルエラーになれば良い
170デフォルトの名無しさん
2020/02/02(日) 08:27:24.30ID:DTIMfhpJ label貼るくらいならgoto使う
171デフォルトの名無しさん
2020/02/02(日) 09:22:07.84ID:mzCY/+E0 gotoは便利なswitchだからね。
便利すぎるわこれ。
これからも積極的に使っていこうと思います。
便利すぎるわこれ。
これからも積極的に使っていこうと思います。
172デフォルトの名無しさん
2020/02/02(日) 09:40:59.69ID:7b/FZYuN さすがにgotoでジャンプテーブル化の最適化までやる処理系は
まれだと思う
まれだと思う
173デフォルトの名無しさん
2020/02/02(日) 09:43:27.45ID:mzCY/+E0 アドレス直接指定なのに、テーブル必要ないんじゃないの。
テーブル必要ない分、switchより有利なんじゃないかと思いました。
テーブル必要ない分、switchより有利なんじゃないかと思いました。
174デフォルトの名無しさん
2020/02/02(日) 09:51:12.60ID:7b/FZYuN (条件分岐無しの素のgotoだけでどうやってswitchの便利な代替品にするつもりなのやら…
175デフォルトの名無しさん
2020/02/02(日) 09:53:50.90ID:mzCY/+E0 頑張ってひねり出した!!
けどウンコにしか見えない。
納得できるものを頼む。
けどウンコにしか見えない。
納得できるものを頼む。
176デフォルトの名無しさん
2020/02/02(日) 09:55:31.36ID:0Gqmr542 >>175
お前が何をいってるのか、何を考えてるのか理解できないのに、お前を納得させられる奴なんていないぞw
お前が何をいってるのか、何を考えてるのか理解できないのに、お前を納得させられる奴なんていないぞw
177デフォルトの名無しさん
2020/02/02(日) 10:10:20.38ID:o79zkFFu お尻にラベルつけて break ラベル; がいいとか言ってる奴は構造化の意味がわかってなさ過ぎ
ラベルは飛び先じゃなくてループに付けて break ラベル; でそのループから抜けるんだよ
なので break ラベル が使える言語はたいていループの頭にラベルをつけるようになってる
あと break レベル数 とか言ってる老害は早く滅びろ
ラベルは飛び先じゃなくてループに付けて break ラベル; でそのループから抜けるんだよ
なので break ラベル が使える言語はたいていループの頭にラベルをつけるようになってる
あと break レベル数 とか言ってる老害は早く滅びろ
178デフォルトの名無しさん
2020/02/02(日) 10:28:45.43ID:DTIMfhpJ 名前使うならこんな感じか
void main(){
auto scope1 {
for(;;){
for(){
break scope1;
}
}
}
void main(){
auto scope1 {
for(;;){
for(){
break scope1;
}
}
}
179デフォルトの名無しさん
2020/02/02(日) 10:29:18.43ID:mzCY/+E0 >>176
俺自身何を言っているのかよくわからないのだが。
俺自身何を言っているのかよくわからないのだが。
180デフォルトの名無しさん
2020/02/02(日) 10:31:44.19ID:DTIMfhpJ もしくは、forの直後
void main(){
for(;;)scope1{
for(;;){
break scope1;
}
}
}
void main(){
for(;;)scope1{
for(;;){
break scope1;
}
}
}
181デフォルトの名無しさん
2020/02/02(日) 10:58:10.77ID:MNdu0823 void main()の時点で読む気失せた
182デフォルトの名無しさん
2020/02/02(日) 11:16:46.30ID:DTIMfhpJ んだこんにゃろ
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- バリ島で男子生徒ら集団万引きか、防犯カメラ映像が拡散 京都の大谷中学・高校が「窃盗行為」謝罪★4 [七波羅探題★]
- 中国軍機レーダー照射、トランプ氏沈黙突く 試される日本外交 [蚤の市★]
- 【地震】青森県で震度6強 長周期地震動も 津波注意報すべて解除 ★7 [ぐれ★] [ぐれ★]
- 【速報】気象庁は津波注意報すべて解除 [蚤の市★]
- 【サッカー】58歳カズ「オファーが来ている」 J3福島と近日中にも交渉 早ければ年内にも決断 [征夷大将軍★]
- 「3.11の余震とは別か」「長時間避難できる場所を」 識者の見方 [蚤の市★]
- 【実況】博衣こよりのえちえち朝こよ🧪
- さかまた「過呼吸になった」かなた「耳聞こえない」ござる「声出ない」まつり「ご飯食べれない」
- 【画像】カリカリ女、脱いだらすごい😨 [632966346]
- 早大名誉教授「高市内閣の高支持率はデータ操作か、支持している日本人がアホなのか」👈核心を突いてしまう [868050967]
- 時々ロシア語でデレるアーリャさんより常に日本語でデレる俺の方がよくね?
- 膝掛け使ってる男いるでしょ
