問題タブ [while-loop]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
language-agnostic - ループの最後の要素は別の処理に値しますか?
レビューするとき、私は時々この種のループに遭遇します:
それから私は質問をします:あなたはこれを書きますか?
私の意見では、これはループを作成する意図に反します。要素ごとに共通の処理が行われるため、ループします。この構成を使用して、いくつかの要素に対して、何か別のことをします。したがって、これらの要素には別のループが必要であると結論付けます。
今、私はSOについて、-clauseをうまく書く方法についての質問さえ見ました...そして私は悲しくなりました:何かがここにありません。if
私が間違っている?もしそうなら、コーディング時にループ本体を特別なケースで乱雑にすることの何が良いのでしょうか?
perl - Perl:while($ key = each%hash)はkey=0で停止しません
もちろん、これは必要ありません。ここで何が起こっているのか知りたいだけです。私は何か簡単なものが欠けていますか?Perlのすべてのバージョンでこの動作に依存できますか?)
Perl v5.8.8:
出力
man perlfunc
$k
(each)は、 0が割り当てられたときにwhileループが続く理由を説明していません。コードは、while
ループの条件がであるかのように動作します($k = each %h, defined $k)
。
ループ条件が実際にに変更された場合、実際には
期待どおり($k = each %h, $k)
に停止し$k = 0
ます。
また$k = 0
、次の次の再実装のために停止しeach
ます。
出力だけ:
language-agnostic - 上部または下部でループをテストしますか? (while 対 do while)
私が大学で CS をとっていたとき (80 年代半ば)、常に繰り返されていたアイデアの 1 つは、常にループを記述し、ループの下部 (do ... while) ではなく上部 (while...) でテストすることでした。ループ。これらの概念は、多くの場合、トップでテストされたループが、ボトムでテストされたループよりも統計的に正しい可能性が高いことを示した研究への言及によって裏付けられました。
その結果、私はほとんどの場合、一番上でテストするループを書きます。コードがさらに複雑になる場合は行いませんが、そのようなケースはまれです。一部のプログラマーは、ほとんどの場合、最後にテストするループのみを作成する傾向があることに気付きました。次のような構造を見ると:
またはその逆(if
内while
)、彼らが実際にそのように書いたのか、それともif
ループがnullケースを処理しないことに気付いたときにステートメントを追加したのか疑問に思います。
私はいくつかのグーグルをしましたが、この主題に関する文献を見つけることができませんでした. 皆さん (とギャル) はループをどのように書いていますか?
refactoring - 恐ろしいWhile (True) ループの最適なリファクタリング
私のように、While (True) ループの場所で震えているなら、あなたもそれをリファクタリングする最善の方法について長い間真剣に考えてきたに違いありません。私はいくつかの異なる実装を見てきましたが、タイマーとデリゲートの組み合わせなど、他のどの実装よりも優れているものはありません。
では、恐ろしい While (True) ループをリファクタリングするために思いついた、または見た最良の方法は何ですか?
編集:いくつかのコメントが述べたように、私の意図は、この質問が「無限ループ」リファクタリングであることでした。たとえば、停止条件が OnStop または致命的な例外のみである Windows スタイルのサービスを実行することです。
c# - C#: 簡単なプロジェクトを試す
私はC#が初めてです。ある種のループを使った簡単なプログラムを作りたかったのです。ユーザーが入力した数字をプログラムにループさせ、それが数字よりも小さい場合は推測し続けるようにしたかったのですが、数字25を入力したら、メリークリスマスと言って欲しかった..助けてください
C#初心者
c - Cプリプロセッサでwhileループを書く方法は?
私は教育/ハッキングの観点からこの質問をしています (私は本当にこのようにコーディングしたくありません)。
Cプリプロセッサ ディレクティブのみを使用して while ループを実装することは可能ですか。マクロを再帰的に展開できないことは理解していますが、これはどのように行うのでしょうか?
java - 文字列が等しくなるのを待つ正しい方法
Swing アプリでは、ユーザーが正解を入力した後にのみメソッドを続行する必要があります。正解は に格納され、String
ユーザーの回答はリスナーによって別の に設定されますString
。したがって、コードは
このアプローチですべて問題ありませんか、それとも何らかの方法でリファクタリングしますか? CPUに余分なペナルティを課しませんか? これはやや似た質問です。
python - While ループを停止するにはどうすればよいですか?
関数に aを書きましたwhile loop
が、それを止める方法がわかりません。最終条件を満たさない場合、ループは永遠に続きます。どうすればそれを止めることができますか?
java - Javaのwhileループとスレッド!
あるフィールドの値の変化についてデータベースを継続的にポーリングするプログラムがあります。これはバックグラウンドで実行され、現在、while(true)メソッドとsleep()メソッドを使用して間隔を設定します。これは良い習慣かどうか疑問に思いますか?そして、これを実装するためのより効率的な方法は何でしょうか?プログラムは常に実行することを目的としています。
したがって、プログラムを停止する唯一の方法は、プロセスIDに対してkillを発行することです。プログラムは、JDBC呼び出しの途中である可能性があります。どうすればもっと優雅にそれを終わらせることができますか?スレッドによって定期的にチェックされるフラグを使用して、ある種の出口戦略を考案することが最善の選択肢であることを理解しています。しかし、このフラグの値を変更する方法/条件を考えることはできません。何か案は?
while-loop - while (true) with break はプログラミングの悪い習慣ですか?
私はよく次のコード パターンを使用します。
別のプログラマーは、これは悪い習慣であり、より標準的なものに置き換える必要があると私に言いました:
彼の推論は、「休憩を忘れる」ことがあまりにも簡単で、無限ループが発生する可能性があるというものでした. 私は彼に、2 番目の例では、true を返さない条件を同じように簡単に設定できるので、同じように簡単に無限ループを作成できるので、どちらも同じように有効なプラクティスであると伝えました。
さらに、複数のブレークポイント、つまりループから抜け出す複数の条件がある場合にコードが読みやすくなるため、前者を好むことがよくあります。
どちらか一方の証拠を追加して、この議論を充実させることができる人はいますか?