
No.3ベストアンサー
- 回答日時:
> 要は、このwhileを抜けるのは、どういった処理が実行されたらなのかな??
・「処理」の中でbreak文が実行された(更なるループ内かswitch文の中にないこと)
・「処理」の中でreturn文が実行された(この場合この文があるメソッドから抜ける)
・「処理」の中あるいはそれから呼び出されるメソッドから例外が投げられた(この場合投げられた例外をキャッチできるところまで戻る。どこでもキャッチできなかった場合はプログラム終了)
たぶんあなたは「こんないつまでも終わらないループにどんな意味があるのか」と思われて質問されたと思います。
確かにこれ(無限ループ)はそれを抜け出す手段をループ内に設けない限り意味がありません(というか、普通は作ってはいけない)。
しかし、実はわざと作られた無限ループは結構利用されているテクニックです。
たとえば、AWTやSwingなどのGUIプログラミングで何らかのイベント部分のみを書くだけでウィンドゥが書かれたとおりの動作を行いますが、あれはAWTやSwingなどの内部で以下のような処理を行っているからです。
(あくまでも疑似コードで、詳細は異なるかもしれませんが)
while(true){
if(OSからのイベントが1件以上あるか?){
OSからのイベントを1件受け取り;
受け取ったイベントから処理を行うメソッドを決定し、パラメータを作成;
メソッド実行; // GUIフレームワーク既定のメソッドかもしれないし、プログラマーが記述したイベントハンドラかもしれない
if(メソッド実行結果が「プログラム終了」?)
break;
}
}
上記以外にも、何かを待つ処理の場合は、無限ループ内でその何かが起きたかどうかかを判定し、何かが起きたらbreakする、というのが定番処理になっています。
いやー、、、そんな使い方もあるんですね。。。
GUIはまったく勉強してないので、未知の領域です。。。
ご丁寧な回答ありがとうございます。
No.2
- 回答日時:
while(true){
}
で、永久ループになります。
抜けるには、breakを使います。
例えば、
int i=0;
while(true){
i++;
if(i==3){
break;
}
}
とすれば、iが3のときにループを抜けることが出来ます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) EXCEL関数(数式)を教えてください 2 2022/06/08 18:32
- Excel(エクセル) このコードに追記事項の仕方を教えて下さい。 以下のコード内容に出てくる。セルH3が空白の場合、エラー 4 2023/08/03 00:22
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- Visual Basic(VBA) マクロを短くする 1 2023/01/15 00:11
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- Java java 引数 戻り値のあるメソッド 3 2023/02/12 06:23
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
- Visual Basic(VBA) EXCEL VBAで NHK NEWSの NEWSデータ内容取得が できない 1 2023/04/09 12:26
- Visual Basic(VBA) 【追加】ファイルを閉じてダイアログで保存した時だけ処理の実行をする 3 2022/03/23 15:43
- Visual Basic(VBA) [Excel VBA] このコードでは行の挿入や行の消去をすると13のエラーが出てしまう。 3 2022/12/09 00:29
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
onBlurとonFocusの処理順序につ...
-
jQueryでdiv作成後まで待ってか...
-
Javaプログラムから外部コマン...
-
JSP、サーブレットの初期処理
-
do - while文
-
Tomcatのスレッドを破棄する方法
-
ftp 同時複数接続の負荷テスト...
-
アコーディオンメニューをアン...
-
wait()したスレッドが起こされ...
-
ServletContextLisntener#conte...
-
tryの終了
-
Javaプログラムからポップアッ...
-
doGetとdoPostの違い
-
表示待ち時間に「処理中...」の...
-
Windowsサービスの処理
-
重い処理中のアニメーションgif...
-
「スレッド」の概念について質問
-
重たい処理のタイムアウト強制終了
-
「タイプ初期化子が例外をスロ...
-
「隣の芝生は青く見える」現象...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
tryの終了
-
Tomcat高負荷時の設定について
-
Javaプログラムからポップアッ...
-
Javaでのデバッグコード削除
-
アコーディオンメニューをアン...
-
C#で別スレッドの終了を知りたい
-
onBlurとonFocusの処理順序につ...
-
Javaアプリケーション実行の返...
-
JavaScriptからJAVAクラスを呼...
-
表示待ち時間に「処理中...」の...
-
ExcelVBA で文字列の特定の文字...
-
C#の処理をリアルタイムに表示...
-
ラジオボタンの選択判定
-
Javaの再帰でメソッド呼び出す...
-
数値の定数を付ける時
-
[Java] while(true)の意味
-
Javaプログラムから外部コマン...
-
WaitForSingleObjectの復帰時間
-
Tomcatのスレッドを破棄する方法
-
重い処理中のアニメーションgif...
おすすめ情報