タグ付けされた質問 「while-loop」

whileループは、特定の条件が満たされている限り、一連の命令を継続的に実行するために多くのプログラミング言語で使用される制御構造です。

14
Pythonでdo-whileループをエミュレートしますか?
Pythonプログラムでdo-whileループをエミュレートする必要があります。残念ながら、次の単純なコードは機能しません。 list_of_ints = [ 1, 2, 3 ] iterator = list_of_ints.__iter__() element = None while True: if element: print element try: element = iterator.next() except StopIteration: break print "done" 「1,2,3、done」の代わりに、次の出力を出力します。 [stdout:]1 [stdout:]2 [stdout:]3 None['Traceback (most recent call last): ', ' File "test_python.py", line 8, in <module> s = i.next() ', …


23
どちらが速いですか:while(1)またはwhile(2)?
これは上級管理職からのインタビューの質問でした。 どちらが速いですか? while(1) { // Some code } または while(2) { //Some code } 内部の式whileは最終的にtrueまたはに評価されるため、どちらも実行速度は同じであると述べましたfalse。この場合、どちらも評価されtrue、while条件内に追加の条件付き命令はありません。したがって、両方の実行速度は同じであり、私は(1)を優先します。 しかし、インタビュアーは自信を持って言った:「あなたの基本を確認してください。while(1)より速いですwhile(2)。」(彼は私の自信をテストしていませんでした) これは本当ですか? 参照:「for(;;)」は「while(TRUE)」より高速ですか?そうでない場合、なぜ人々はそれを使うのですか?

5
「while(!feof(file))」が常に間違っているのはなぜですか?
最近、多くの投稿でこのようなファイルを読み取ろうとしている人を見てきました。 #include <stdio.h> #include <stdlib.h> int main(int argc, char **argv) { char *path = "stdin"; FILE *fp = argc > 1 ? fopen(path=argv[1], "r") : stdin; if( fp == NULL ) { perror(path); return EXIT_FAILURE; } while( !feof(fp) ) { /* THIS IS WRONG */ /* Read and process data …
573 c  file  while-loop  eof  feof 


30
ループは逆に本当に高速ですか?
これを何度も聞いたことがあります。逆算すると、JavaScriptループは本当に速くなりますか?もしそうなら、なぜですか?逆ループの方が速いことを示すテストスイートの例をいくつか見ましたが、その理由についての説明はありません。 これは、ループが終了したかどうかを確認するためにチェックするたびにプロパティを評価する必要がなくなり、最終的な数値に対してチェックするだけだからだと思います。 すなわち for (var i = count - 1; i >= 0; i--) { // count is only evaluated once and then the comparison is always on 0. }

6
成功するまでbashでコマンドを実行するにはどうすればよいですか
スクリプトがあり、ユーザーにいくつかの情報を要求したいのですが、ユーザーがこの情報を入力するまでスクリプトは続行できません。以下は、これを達成するためにループにコマンドを入れようとする私の試みですが、何らかの理由で機能しません。 echo "Please change password" while passwd do echo "Try again" done whileループの多くのバリエーションを試しました: while `passwd` while [[ "`passwd`" -gt 0 ]] while [ `passwd` -ne 0 ]] # ... And much more しかし、私はそれを機能させることができないようです。
237 bash  command  while-loop 


12
matplotlibを使用して、whileループでリアルタイムにプロットするにはどうすればよいですか?
OpenCVを使用して、カメラからのデータをリアルタイムでプロットしようとしています。ただし、(matplotlibを使用した)リアルタイムプロットは機能していないようです。 この問題を次の簡単な例に分離しました。 fig = plt.figure() plt.axis([0, 1000, 0, 1]) i = 0 x = list() y = list() while i < 1000: temp_y = np.random.random() x.append(i) y.append(temp_y) plt.scatter(i, temp_y) i += 1 plt.show() この例では、1000ポイントを個別にプロットすることを期待しています。実際に何が起こるかというと、ウィンドウがポップアップして最初のポイントが表示され(それで問題ありません)、ループが終了するのを待ってから、グラフの残りの部分にデータが入力されます。 ポイントが1つずつ表示されないのはなぜですか?

3
戻り値型のJavaメソッドはreturnステートメントなしでコンパイルされます
質問1: 次のコードがreturnステートメントなしでコンパイルされるのはなぜですか? public int a() { while(true); } 注意:しばらくしてからreturnを追加すると、が返されUnreachable Code Errorます。 質問2: 一方、次のコードがコンパイルされるのはなぜですか? public int a() { while(0 == 0); } 以下はそうではありませんが。 public int a(int b) { while(b == b); }

21
「while(true)」ループはそれほど悪いですか?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。私たちは回答が事実、参考文献、または専門知識によってサポートされることを期待しますが、この質問はおそらく議論、議論、投票、または拡張された議論を誘います。この質問を改善でき、再開できると思われる場合は、ヘルプセンターにアクセスしてください。 7年前休業。 私は数年前からJavaでプログラミングをしてきましたが、最近、正式な学位を取得するために学校に戻りました。前回の割り当てで、以下のようなループを使用することでポイントを失ったことを知って、私は非常に驚きました。 do{ //get some input. //if the input meets my conditions, break; //Otherwise ask again. } while(true) ここでのテストでは、コンソール入力をスキャンしているだけですが、この種のループはbreakと似ているためgoto、使用しないことをお勧めします。 gotoとそのJavaのいとこの落とし穴を完全に理解しbreak:labelているので、それらを使用しないのは良識があります。より完全なプログラムは、たとえばプログラムを単に終了するなど、他のいくつかの回避手段を提供することにも気づきましたが、それは私の教授が引用した理由ではなかったので... 何が問題になっていdo-while(true)ますか?

5
リストのすべての要素が条件に一致するかどうかを確認するにはどうすればよいですか?
20000のようなリストで構成されるリストがあります。各リストの3番目の要素をフラグとして使用します。少なくとも1つの要素のフラグが0である限り、このリストでいくつかの操作を実行したいのですが、次のようになります。 my_list = [["a", "b", 0], ["c", "d", 0], ["e", "f", 0], .....] 最初はすべてのフラグが0です。whileループを使用して、少なくとも1つの要素のフラグが0かどうかを確認します。 def check(list_): for item in list_: if item[2] == 0: return True return False がcheck(my_list)返された場合はTrue、リストの作業を続けます。 while check(my_list): for item in my_list: if condition: item[2] = 1 else: do_sth() 実際、繰り返し処理を行っているときにmy_listの要素を削除したかったのですが、繰り返し処理を行っているため、アイテムを削除することはできません。 元のmy_listにはフラグがありませんでした: my_list = [["a", "b"], ["c", "d"], …

14
Pythonループの `else`句をどのように理解できますか?
多くのPythonプログラマーはおそらく、whileループとforループの構文にオプションのelse:句が含まれていることを認識していません。 for val in iterable: do_something(val) else: clean_up() else句の本体は、特定の種類のクリーンアップアクションに適した場所であり、ループの通常の終了時に実行されます。returnつまりbreak、else句を使用してループを終了するか、句をスキップします。continue実行後に終了します。私はちょうどこの理由だけ知っている、それを見上げ、私は覚えていることはできませんので、(再び)ときelse句が実行されます。 常に?名前が示すように、ループの「失敗」について?定期的に終了しますか?ループが終了してもreturn?私はそれを調べなければ、完全に確信を持つことはできません。 私はキーワードの選択がelse根強く残っていることを非難します。このセマンティクスには信じられないほどニーモニックだと思います。私の質問は「なぜこのキーワードがこの目的で使用されているのか」(回答とコメントを読んだ後でのみ、投票する可能性がある)ではなく、elseキーワードの意味を理解するためにキーワードをどのように考えることができますか。したがって、それを覚えることができますか? 私はこれについてかなりの量の議論があったと思います、そして私はtryステートメントのelse:条項(私も調べなければならない)との一貫性のために、そしてリストに追加しないことを目標にして作られた選択を想像することができますPythonの予約語。おそらく、選択した理由によってelseその機能が明確になり、覚えやすくなりますが、私は名前を機能に関連付けた後です。歴史的な説明自体ではありません。 回答この質問私の質問は簡単に興味深いバックストーリーがたくさん含まれている、の重複として閉鎖されました、。私の質問は別の焦点(特定のセマンティクスとelseキーワードの選択を関連付ける方法)を持っていますが、この質問へのリンクがどこかにあるはずです。

7
whileループ内で変更された変数は記憶されません
次のプログラムで$fooは、最初のifステートメント内で変数に値1 を設定すると、ifステートメントの後にその値が記憶されるという意味で機能します。ただし、同じ変数をステートメントif内の内の値2に設定するとwhile、whileループの後で忘れられます。ループ$foo内で変数のある種のコピーを使用していて、whileその特定のコピーのみを変更しているように動作しています。ここに完全なテストプログラムがあります: #!/bin/bash set -e set -u foo=0 bar="hello" if [[ "$bar" == "hello" ]] then foo=1 echo "Setting \$foo to 1: $foo" fi echo "Variable \$foo after if statement: $foo" lines="first line\nsecond line\nthird line" echo -e $lines | while read line do if [[ "$line" == "second line" ]] …
187 bash  while-loop  scope  sh 

2
Bashのループから抜け出す方法は?
テキストを処理するBashスクリプトを記述したいのですが、whileループが必要になる場合があります。 たとえば、Cのwhileループ: int done = 0; while(1) { ... if(done) break; } それと同等のBashスクリプトを書きたいのですが。しかし、私が通常使用し、私が読んだすべての古典的な例が示したように、これは次のとおりです。 while read something; do ... done よく定義され、Cで広く使用されているwhile(1){}との方法についてのヘルプはありbreak;ません。また、stdinのデータを読み取る必要はありません。 上記のCコードに相当するBashで誰かが私を助けてくれませんか?
150 bash  shell  while-loop 

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.