ここから本文です

C++について質問です。勉強中にプロが書いたコードを見ていて、for(;;)というのを...

tak********さん

2020/4/501:01:56

C++について質問です。勉強中にプロが書いたコードを見ていて、for(;;)というのを見つけて理解できませんでした。
どういう意味か教えてください。

閲覧数:
35
回答数:
4

違反報告

回答

1〜4件/4件中

並び替え:回答日時の
新しい順
|古い順

プロフィール画像

カテゴリマスター

原沢信道さん

2020/4/509:45:08

終了条件が無いので、無限ループと成りますが、ループはbreakで終了出来るので、breakを書く事で終了します。ただし、終了の条件を解読するのに手間がかかるので、文法を有効に使って、解読のし易いプログラムとすべきですので、あまりお勧めは出来ません。

prwssさん

2020/4/509:38:47

>for(;;)というのを見つけて理解できませんでした

最早答えは出てますが、C言語の時代から存在するテクニックです

知らないと出来るわけがないという部類のイディオムですので、「こう書いたらこのような意味になる」と暗記します


C言語での無限ループの作り方 - C言語入門
https://kaworu.jpn.org/c/C%E8%A8%80%E8%AA%9E%E3%81%A7%E3%81%AE%E7%8...

繰り返し文
http://www3.nit.ac.jp/~tamura/ex2/loop.html

C言語での無限ループの作り方 | ソフトウェア開発日記
https://lightgauge.net/language/c-language/3704/

2020/4/507:56:17

規則を知っているかどうかという話なので、「見て」理解できるものではありません。

for文の構文
for(初期化; 継続条件式; 更新式) 文
において、
・初期化、更新式に何も記述されていなければ、初期化、更新の際になにもしない、
・継続条件式に何も記述されていなければ真と解釈する
ことになっているので、
for( ; ; ) 文
はひたすら文を繰り返す、という動作になります。(そうなるように規則を決めた、という感じですが) いわゆる「無限ループ」。

while(true) 文
でも同様の効果が得られます。どちらを使うかについてはほとんど宗教的な論争があるわけですが、とりあえずどちらに出会っても理解できるようにしておきましょう。

結構古い版の規格ですが、'JISX3014'で検索するとC++の規格の日本語版が見つかると思います。for文とかは特には変わっていないはずなので目を通してみてもいいかも知れません。あくまで「規格書」なので読みやすい文章とはいいませんが、ネットにあまたある「俺知ってるつもり」の解説よりは確かな情報が得られます。

yay********さん

2020/4/501:13:54

無限ループの記述です。

for文では初期化式,条件式,後始末の式(カッコで括って要る部分のことです)は必要ない場合には空白(書く必要がない)にできます。

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる