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

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

新規登録して質問してみよう
ただいま回答率
85.48%
C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

解決済

2回答

340閲覧

C++のfor文について

hon.ki

総合スコア157

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

0クリップ

投稿2022/04/30 12:00

C++

1struct Node 2{ 3 /* data */ 4 Node* next; 5 string name; 6 7 Node(string name_ = "") :next(NULL), name(name_) { } 8}; 9void init() { 10 nil = new Node(); 11 nil->next = nil; 12} 13void printList() { 14 Node* cur = nil->next; 15 for(; cur != nil;cur = cur->next) { ← 16 cout << cur->name << " -> " ; 17 } 18 cout << endl; 19} 20

アルゴリズムについての書籍を読んでいて、連結リストについての箇所で、以下のようなコードがありました。
←がついている行について、お聞きしたいです。
このfor文は、普段自分が使っている、

C++

1for(i=0;i <10;i++) 2{ 3}

みたいなものと書き方が違うので、少し面食らっています。 最初にcurを nil->nextで初期化して、 cur=cur->nextしながら cur = nilになるまで繰り返すということはなんとなくわかるのですが、自分で使いこなせる理解度になっている気がしません。

for文について自分の今までの理解が浅かったのでしょうか? この文法が解説されているサイトなど、もしあったらご提示いただけるとありがたいです。

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

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

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

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

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

guest

回答2

0

ベストアンサー

正確なforの文法を理解してください。
for ステートメント

一番使われる形式は、ご提示のものですが、init部、cond部、loop部は各々独立しており、以下のような構文も可能です。

C++

1string A; 2double B; 3int C = 0; 4for (A="start"; B >0.0;C++)

また、空文も可能なので、以下のような記述も可能です。

C++

1for (;;) // while (1) と同じ

見慣れない文法や関数などを確認したい場合、blogなどの解説記事ではなく、公式の定義やマニュアルを参照されることをお勧めします。

投稿2022/04/30 12:31

YT0014

総合スコア1708

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

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

0

普通に、C/C++の入門書に書いてあると思います。
for(最初に一度だけ実行される; そのあとこれを評価して偽ならループ終了; 各繰り返しの最後にこれを実行)
ですね。「各繰り返しの最後にこれを実行」のあとで「そのあとこれを評価して偽ならループ終了」に戻る。

よくある説明は、

C++

1for(expr1; expr2; expr3){ 2 XXXXX; 3}

は、下記と同じ。ただしcontinueの飛び先はちがうが。

C++

1expr1; 2while(expr2){ 3 XXXXX; 4// continueの飛び先はここ 5 expr3; 6}

投稿2022/04/30 12:27

編集2022/04/30 12:33
otn

総合スコア84555

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問