C++基本中の基本その7

※自分用メモ
※引用元「ローベルのC++入門講座」

【for文の書式】

・for の書式は for(<初期化式>; <条件式>; <ループ式>)<実行文> である。
・条件式は初期化後すぐにも評価される。
・省略できるパラメータは省略できる。

ってことで、いろいろ試してみるー

#include <iostream>
#include <string>
using namespace std;

int main()
{
    int i;
    for(i = 10; i < 20; i += 2) //10から始まって20で終わる、iは2個ずつ増やす
    {
        cout << i << endl;
    }    
    return 0;
}

結果

10
12
14
16
18
#include <iostream>
#include <string>
using namespace std;

int main()
{
    int i;
    for(i = 10000; i < 10; i++) //10000から始まって10で終わる, iは1個ずつ増やす
        cout << i << endl;
    return 0;
}

結果

※この場合iは10で終わるが優先され、何も表示されない

無限にループさせたいときはfor( ; ; )while(1)で無限ループになる。

【breakとcontinue文】

・ループを途中で抜けるにはbreak;を使う

#include <iostream>
#include <string>
using namespace std;

int main()
{
 int a;
 
 while(1)
 {
     cout << "guess a number > " << flush;
     cin >> a;
     if(a == 5)
     {
         cout << "u r correct" << endl;
         break;
     }
     cout << "guess again" << endl;
 }
 cout << "game over" << endl;
 return 0;
}

結果

guess a number > 1
guess again
guess a number > 2
guess again
guess a number > 3
guess again
guess a number > 5
u r correct
game over

・実行文の終わりに飛ぶにはcontinue;を使う

#include <iostream>
#include <string>
using namespace std;

int main()
{
 int a, i;
 
 for(i = 0; i < 5; i++)
 {
     cout << "guess a number > " << flush;
     cin >> a;
     if(a == 5)
     {
         cout << "u r correct" << endl;
         continue;
     }
     cout << "guess again" << endl;
 }
 cout << "oops game over" << endl;
 return 0;
}

結果

guess a number > 1
guess again
guess a number > 2
guess again
guess a number > 3
guess again
guess a number > 5
u r correct
guess a number > 2
guess again
oops game over