質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

ループ

ループとは、プログラミングにおいて、条件に合致している間、複数回繰り返し実行される箇所や、その制御構造を指します

Q&A

解決済

4回答

1578閲覧

無限ループはどちらのほうが使われる?

stzyang

総合スコア6

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

ループ

ループとは、プログラミングにおいて、条件に合致している間、複数回繰り返し実行される箇所や、その制御構造を指します

0グッド

1クリップ

投稿2020/09/23 03:12

javaを現在勉強しています。
無限ループの処理の際のサンプルcodeにて
while (true)

for (;;)
両方のパターンを見かけます
個人的にはforで無限ループさせたほうが入力が早くて楽なのですが実務レベルではwhileのほうが見やすかったりするのでしょうか?
実務等で扱う場面の多いほうがどちらなのかと、その理由等がありましたら教えていただきたいです

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kuma_kuma_

2020/09/23 05:50 編集

個人的には while (true) 理由は trueの部分は変数化してtrueを入れておくように書いておいて デバッグなどで1回だけループとかの時falseにするとか調整しやすい ※通常とは違う抜け方でデバック用と判るから ※※お言葉に甘えて回答欄に同じ内容で記載しました
stzyang

2020/09/23 03:32

なるほど! デバッグ用かどうかの見分けまで意識してませんでした その辺まで考えるとforは少し不便ですね コメント等でデバッグ用と判別させれなくもないですが単純なfalseでデバッグとわかるのは大きいですね! 回答ありがとうございますm(__)m
stzyang

2020/09/23 03:33

BAさせていただきたいのでよろしければ回答のほうにご記入していただけると助かります。
guest

回答4

0

個人的には

while (true)

ですかね。
無条件ループっていうのが明示的に分かるので。

for (;;)

これだと、条件の付け忘れか何かと勘繰ってしまう。

そもそも実務レベルで無限ループって書きませんし、
入力が早いとかいうことより、読みやすさを重視します。

と言っておいてなんですが、Streamでも無限ループできるみたいです。

Stream.iterate

Stream (Java Platform SE 8 )

投稿2020/09/23 04:21

szk.

総合スコア1400

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

stzyang

2020/09/23 08:04

あまり大規模なコードにまだ触れたことがなくどちらも同じ感覚で見ていましたが回答していただいた方々のコメントを見る限りwhileのほうが良いのですね ありがとうございますm(__)m また、別の無限ループについての紹介ありがとうございます! 本題とはずれてしまうのですが 入力回数に制限がないものの入力をさせなければならないような場面 (例えば:購入した商品を上限なく書き込み、リストに保管させておく等)でも無限ループを使わずに済んだりするのでしょうか?
szk.

2020/09/23 11:20

購入した商品を・・・と言ったケースであれば、 商品を買い物カゴに追加するイメージなので、ループでいれるイメージにはなりません。 javaで無限ループはリソース(CPU)を食いすぎるので、あまり実用的ではないです。
shiketa

2020/09/23 12:45

# ヨコから失礼します。 > 入力回数に制限がないものの入力をさせなければならないような場面 (例えば:購入した商品を上限なく書き込み、リストに保管させておく等)でも無限ループを使わずに済んだりするのでしょうか? 回数や商品数に制限はなくても、だれかが入力したものどこかから来るものであれば、その回数商品数を勘定することができる、はず。勘定できるということは、無限ではない。上限がある。上限があるのだから、無限ループを使わずに済んだりする。
guest

0

ベストアンサー

個人的には
while (true)
理由は
trueの部分は変数化してtrueを入れておくように書いておいて
デバッグなどで1回だけループとかの時falseにするとか調整しやすいから
※通常とは違う抜け方でデバック用と判るから

投稿2020/09/23 05:26

kuma_kuma_

総合スコア2506

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

stzyang

2020/09/23 07:47

ありがとうございます!!
guest

0

while (true)の方が無限ループであることが明快になっていてわかりやすく感じます。
for文は繰り返し回数が明確に定められる時に使う印象があります。

投稿2020/09/23 03:57

deaf_tadashi

総合スコア200

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

stzyang

2020/09/23 08:12

forの使う場面をあまり考えず使ってしまっていました(^^; 明確な回数があるかどうかを気にしながら使い分けれるように意識していきたいと思います! 回答ありがとうございますm(__)m
guest

0

どっちでも同じです。すきなほうをどうぞ

投稿2020/09/23 03:16

y_waiwai

総合スコア88042

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問