- ベストアンサー
無限ループの防ぐ方法
- 無限ループの発生を防ぐための対応方法として、delay関数を利用する方法があります。
- ただし、delay関数を利用すると処理が重くなる可能性があるため、最小限の改造で解決する方法を検討する必要があります。
- 他の処理も含めて改造をすることで、PCのフリーズを防ぐことができる可能性があります。
- みんなの回答 (10)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
その他の回答 (9)
- Interest
- ベストアンサー率31% (207/659)
- titokani
- ベストアンサー率19% (341/1726)
- yama1718
- ベストアンサー率41% (670/1618)
- zwi
- ベストアンサー率56% (730/1282)
- hidebun
- ベストアンサー率50% (92/181)
- digitalian
- ベストアンサー率29% (323/1104)
- D-Matsu
- ベストアンサー率45% (1080/2394)
- hidebun
- ベストアンサー率50% (92/181)
関連するQ&A
- 無限ループとループ文
プログラミングにおいて while文、for文、foreach文などループ文は種類がありますが 無限ループに繋がってしまう恐れが高い順などは存在しますか? どのループ文もミスなく慎重に 正確な書き方さえしていれば無限ループは起きないと思いますが もしそのような順が存在するのであれば、わからないので教えて頂きたいです。
- ベストアンサー
- JavaScript
- for文while文の無限ループの違いについて
for文の無限ループ for(; ;) と、 while文の無限ループ while(1) は、 どのように違うのですか? 処理速度やCPU負荷を考慮して、 どちらを使用するか悩んでいます。 よろしくお願いします。
- ベストアンサー
- C・C++・C#
- 無限ループ内でのキー判別
DSPを用いたシステムを開発している途中なのですが。ループ内でのキー判別ができません。 whlie文で無限ループを行い,特定のキー(Enter等)が押されたらその動作を行うという判別ができません。 get関数等を無限ループの中で用いると,get文のところで止まってしまい,これでは私が求めている処理を行うことができません。 無限ループを行い,キー操作があった時だけその動作をする関数があれば教えてください。 PC:window7,visual stdio
- ベストアンサー
- C・C++・C#
- ループを途中で抜けたいのですが。
無限ループさせているwhileやfor文などで、 何かのキーを押すとループを抜けるように設定したいのですが可能でしょうか? (scanfやcinなどをループの中に組み込まずに。ctrl+Cも無しで。) (あと、フォーム上ではなくコンソール上で。) 多分説明不足なのでもうちょっと詳しく。 たとえば、 while ( i != 1 ){ j += 1; } の様な無限ループを設定したとして、 本来なら if (j > 100 ){ break; } とか、 while文の中に scanf ( "%d" , &i ); 等を入れて終了条件を満たさせるべきですが、 そうではなく、ひたすら無限ループを続けているところにEscキーを押すとループから脱出するようなプログラムを作ってみたいのです。 そういうプログラムは可能でしょうか? どうかご教授下さい。 使用コンパイラ:Visual C++ 2008 Express Edition
- ベストアンサー
- C・C++・C#
- while文と無限ループの違い
はじめまして。大学でC++を習い始めたばかりの初心者です。 最近while文とwhile文と使った無限ループを知ったのですが、 両者の違いがイマイチわかりません。 私のイメージですと、while文は条件が真である限り何度でも判定し 条件が偽になればループを抜ける。 一方無限ループもif文を使った条件が真にならない限りbreakしない。 while文の偽と判定する部分がif文で真と判定するだけで、同じような気がするのですが… ド素人の考えで恥ずかしいのですが、違いをわかりやすく教えてください。
- 締切済み
- C・C++・C#
- 無限ループをわざと作って時計をつくりたい
無限ループをわざと作って時計を作ろうと思っています。 while(true){ 処理 } とすると無限ループを作ることができると書いてありましたので private void btnRedActionPerformed(java.awt.event.ActionEvent evt) { while(true) { taOutput.setText(""); Date d = new Date(); taOutput.append(d +":" ); Color c = new Color(102,255,255); taOutput.setBackground(c); Font f = new Font(Font.SERIF, Font.ITALIC, 25); taOutput.setFont(f); } } として実行してボタンを押すと処理が止まって固まってしまうのです。 出力画面にOutOfMemoryErrorと書いてあるのでそのへんの理由だと思うのですが。 ちなみに for (int i = 0; i<5; i++) { } でテストするとうまく動きます。 これを固まらせずにうまく無限ループを続けさせるにはどうしたらいいのでしょうか。
- ベストアンサー
- Java
- 10進ベーシックでループを抜けたい
for文で作った2重ループの中にif文があります。 if文の条件を満たしたらループを抜けるようにしたいのですが、 「goto 行番号」や「EXIT FOR」 を使ってもうまくいきません。 一度に2重ループを抜けたいのですが、どうすればいいでしょうか?
- ベストアンサー
- Visual Basic
- 無限ループからの脱出
import java.io.*; public class Test { public static void main(String[] args) throws IOException { String ss; int idt; while(true) { try { BufferedReader f = new BufferedReader(new InputStreamReader(System.in)); System.out.print("数字を入力してください : "); ss = f.readLine(); if(ss == "end") break; idt = Integer.parseInt(ss); System.out.println("あなたの入力した数字は " + idt + " です。"); System.out.println(); } catch(NumberFormatException e) { System.out.println("error : " + e); System.out.println(); } } } } 上記は、コンソールに入力した数字をそのまま出力し、数字以外を入力すると例外処理するプログラムです。 見ていただくと分かるとおり、途中入力したものが「end」だとbreakして無限ループを脱出するということを予定して作りました。 しかしbreakしてくれません。if文の中に処理が移っていないのです。なぜでしょうか? 宜しくお願いします。
- ベストアンサー
- Java
- 普通のfor文が無限ループになってしまうことはあるのでしょうか?
C#のプログラミングで for (int i = n; i < n + 2; i++) { .,......... } のような普通のfor文が無限ループになってしまっていて困っています。 何か書き方が悪いのか、それともVISUAL STUDIOやパソコンの調子が悪いのでしょうか?? 教えてください。 ちなみにnは-9E17くらいのすごく小さな数です。
- 締切済み
- C・C++・C#
お礼
回答ありがとうございます。 新規で開発する場合は、メッセージキュー(プロセス間通信)など を使用して、同期など取っているのですが、今回は予算も少なく、 他会社が捨てたプログラムの修正ですので、どうしても大幅な改造が 出来ない状態です。 根本的な所からソフトを作りたい所ですが、現状のソフトが フリーズする現象だけでも直す依頼ですので、つらい所が あります。 今後のプログラムを作成する上で色々と参考にさせて いただきます、ありがとうございました。