C++相談室 part165

レス数が1000を超えています。これ以上書き込みはできません。
2023/10/31(火) 07:37:38.52ID:+ZyYyqMO0
!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
↑同じ内容を3行貼り付けること

次スレは>>980が立てること
無理なら細かく安価指定

※前スレ
C++相談室 part164
https://mevius.5ch.net/test/read.cgi/tech/1683600652/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
2025/04/26(土) 15:54:33.92ID:IX/fzv3ga
boostの方のは使ってた
2025/04/26(土) 17:25:44.72ID:DKbZdqM30
>>961
breakもcontinueもgotoの一種なのだから仕方が無い
行先がスコープの始まりか終わりに限定される、というのが良心的なだけで
実行フローをぐちゃぐちゃにできうる能力のはgotoとほとんど変わらないし、、、
for (i=0; i < 100; i++) {
  if (i == a) { continue; }
  if (i == b) { break; }
  if (i == c) { continue; } // i== aとi==cをまとめるとしたら、if (i == a && i != b && i == c) { continue; }としないとバグ
  if (i == d) { break; }
}

また例外はスローする関数と条件を把握していない限り、
いつ炸裂するかわからないステルスgoto文がコード中にばらまかれているのとだいたい同じ……
従って構造化プログラミングで議論に結論がデタと考えるのは早計で、goto問題は永遠に古くて新しい問題……
2025/04/26(土) 21:55:33.90ID:P90TCdD80
一生やってろよw
2025/04/26(土) 23:03:17.16ID:KeLpsr3P0
大量のコードが不可分にもつれあった状態を作れるgotoと
連接・分岐・反復という構造を崩さないcontinue/breakの
違いがわからないようならどうしようもない。
2025/04/26(土) 23:12:16.46ID:qC2gIsX80
古いXLISPのソース見たら発狂するのかしら?
2025/04/27(日) 00:35:43.45ID:J2DPm7Xn0
そんなに構造化が嫌なら最初から機械語で書けばいい
gotoしかないから楽しいかもよ
私は嫌です
2025/04/27(日) 05:06:56.76ID:sqtCgEt90
いや普通の機械語・アセンブラでも、いまどきキレイに書くからw

AIがコード生成しだしたらもうしらん あいつら疲れ知らずの限界なしだから
994デフォルトの名無しさん (アウアウウー Sa1b-Dl8r)
垢版 |
2025/04/27(日) 14:53:44.65ID:rRExk4WBa
「機械語はgotoしかない」は明らかに嘘だな
2025/04/27(日) 15:18:04.41ID:5TUg21k+0
せやば
2025/04/27(日) 17:44:14.12ID:0aN/b0Iq0
ダイクストラが言う構造化プログラミングはモジュールとか抽象データ型とかも含む広範で抽象的な概念として説明されている。
連接・分岐・反復で構成しようという話はそれより前に発表されたものだが、この時代は構造化もクソもないプログラムがまかり通っていたという前提がある。
まずはその三要素を基礎に据えて構成したらわかりやすくね? という提案 (というか感想?) に過ぎず、それで全て事足りるみたいな主張ではない。
(理論上は連接・分岐・反復で全て表現可能であるという証明はされている。)

構造化プログラミングの考え方のキモは構造は人間の認知の中にあるということ。
人間が思考しているときの構造を書き表すためにどんな言語機能 (またはデザインパターン) があればよいの? ってのが構造化プログラミングの議論なんだよ。
書いた人が思ってる構造が表現されているなら構造化プログラミングだし、構造化プログラミングのために用意された機能を使っていても構造が表れていなければ構造化プログラミングではない。
まあついでに言えば書き表されたものについて (コンパイラも人間も) 検証しやすいことも大事だ。

機械的に goto を除去したらむしろ構造が失われるという例をクヌースが出したりもしていて、結局のところはどんな機能も正しく使えば正しいし、悪い使い方をすれば駄目になるというシンプルな話。
そんなわけで break が構造化を崩すか崩さないかは使い方による。
ただ、常識的に考えて break は goto より構造を破綻させにくいだろうってだけ。
997デフォルトの名無しさん (ワッチョイ 9f35-3+vo)
垢版 |
2025/04/27(日) 18:16:26.55ID:yHO53gwR0
ダイクストラがじゃなくてもうちょい場を学ぼう
便所でいきなり大声で演説垂れ始める人がいたらみんな引くもんなんだよw
2025/04/27(日) 19:25:43.76ID:sqtCgEt90
>>997 >>997
999デフォルトの名無しさん (スフッ Sdbf-Nh+M)
垢版 |
2025/04/28(月) 10:15:47.67ID:3WBgyNGdd
連接と分岐があれば反復は要らない説
2025/04/28(月) 10:19:08.06ID:AuNLagCl0
C++相談室 part166
https://mevius.5ch.net/test/read.cgi/tech/1745631298/
仲良く使ってね
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 545日 2時間 41分 30秒
レス数が1000を超えています。これ以上書き込みはできません。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況