TOP カテ一覧 スレ一覧 100〜終まで 2ch元 削除依頼
【wasm】ブラウザでC++。Emscriptenを語ろう
MFC vs .NET
プログラムに詳しくなりたい
【GNU】スクリプト言語 Guile【scheme】
Lisp Scheme Part40
ほぼ初心者プログラマでするべき事がわからない
C#で仕事ある?
PowerShell -Part 3
C言語なら俺に聞け 151
C++相談室 part144
808 :
糞使えなかった do-while 文だが、最近使えそうなところに遭遇した。
が、結局スコープの問題で使えなかった。コード構成は以下と同じ。

do {
Type value(GetCurrentValue());
Process(value);
} while (condition(value));
// https://stackoverflow.com/questions/13297243/why-is-whiles-condition-outside-the-do-while-scope

ここで上記の筆者も言っているが、do-whileのスコープって使えないよな?(設計としてよくない)
そこで他言語でこのスコープが直っている物を知らないか?
最有力としてはC#だが、試したが駄目だった。
(スコープはCと同様、そしてdo-while自体がレア https://ufcpp.net/blog/2016/12/tipsdowhile/ )
Rustは do-while ループを廃止したらしい。Goはwhile文自体を廃止している。

言語設計としての一貫性は重要として、
for文がスコープを拡張しているのに、do-whileがスコープを拡張してないのは間違いのように思う。
というか、do-whileが使えないのってこのスコープ設計が間違っているからであり、
正しくスコープが拡張されていれば有効性はあったように思うが、どうか?
while (true) { if ... break;} より1行短く書けるメリットもあるが、
それ自体ではなくく、その形式のループを全部do-whileにすることにより可読性が上がる。
違う言い方をすれば、 while ループでの頻出形式を for に纏めたのと同じく、
必ず一度は実行し最後に break する形式の while ループを全て do-while にすることにより識別しやすくなる。

もっとも、JaveScriptに慣れた状況だと、最早ブロックスコープイラネとも思えてきたが。
ブロックスコープだとどうしてもこういう状況等で宣言型(変数の宣言と同時に常に初期値を代入し、必要なければ再代入をしない)で書けない。
関数スコープの問題は関数を小さくすることによりほぼ回避出来るので。
(JavaScriptは全ての関数がクロージャを持つので、C言語でのループは常に関数内関数としてそのまま切り出せる)

次世代言語10[Rust Swift TypeScript Dart]
インデントを強制しても綺麗なコードにはなりません
Perlについて
Java入門・初心者質問スレ Part.9
pythonがこの先生きのこるには
C++でXML(主にxerces)やろう!
【Scheme】Schemeインタプリタ Mosh Part1【Lisp】
プログラマは大卒じゃないと就活厳しいってホント?
Jenkins
プログラミング言語 Rust 4【ワッチョイ】
--------------------
ハゲって人生の詰みだよね
【疫病神】アスリートにセクハラする寄生虫・石橋貴明
【戸塚宏校長】アトピーは甘え! 石原慎太郎も支援
広島・JFEスチール競走部・福山
「もてなすぎて頭おかしくなったな」と思った瞬間 32
☆★羽田・横浜・湘南京急バスpart10★★
亀田より酷い奴なんて他のスポーツ界にいるの?
T☆N(540)
【芸能】岡村隆史「コロナ収束後、金に困った可愛い娘が風俗に流れてくる。 それまで風俗は我慢しましょう」→ニッポン放送が謝罪★55 [1号★]
●○ 京都のゲーセン事情 55th ○●
【MD】シャイニングフォース 神々の遺産
別館★羽生結弦&オタオチスレ14199
【A5Pro】 Umidigi 総合 Part 35【Power】
【スレ荒らし水禿ゴミズ】みずりんを追放するスレッド【うたスキ動画】
もしこの世に神がいたらそいつはクソだ。
沖縄(本島)観光 その134
MX・tvk・テレ玉・チバ・群馬・とちぎ実況 ★ 56383
「無線板」中国製短波ラジオを語れ66台目
【旦那が】津那美スレ【宇宙人】
ヤハウェ・イエス・キリスト☆🇯🇵イスラエル☆ニューエルサレム☆YHWH 7
TOP カテ一覧 スレ一覧 100〜終まで 2ch元 削除依頼