「c++forwhile」の編集履歴(バックアップ)一覧はこちら
「c++forwhile」(2012/05/31 (木) 17:22:34) の最新版変更点
追加された行は緑色になります。
削除された行は赤色になります。
*繰り返し文
繰り返し文とはある回数の数だけ処理を繰り返すときに用いる。
今回はメジャーな繰り返し文2つを挙げる。
**for文
for([初期値];[条件式];[増減値])
{
[処理]
}
上記が記述例である。初期値から増減値分の変化が起こり、条件式の条件の間、
処理を繰り返すという内容である。
繰り返し文として一番多く用いられるものだろう。実際の例を見てみる。
例)1~100までの総和を求めるプログラム
#include<iostream>
using namespace std;
int main()
{
int sum=0; //合計値
for(int i=1;i<=100;i++)
{
sum=sum+i; //sum+=i;でもおk
}
cout<<sum<<endl;
return 0;
}
上記プログラムでは
1から100までのループが回っている。このループの中で、合計値として用意した
変数sumにループの数値iを足して総和を求めている。
※forの中にint iと宣言している
ループを使うための変数なのでここで宣言している。C言語では許されない。
また、このiが有効なのはfor(){}の{}の中だけである。いわゆるローカル変数
なので、注意しないといけない。
※sum=iではダメなのか
ダメ。代入だけになるので最終的には100が代入されて100が出力される。
sumと足すことで今までの足した分と足すことができる。
**while文
while([条件式])
{
[処理]
}
記述例は上記。while文も同じく繰り返し文だが、記述方法が違うので注意。
また、処理の中に増減値を入れないと繰り返し文から抜けない。
for文と同じ例を用いて実際に書いてみる。
例)1~100までの総和を求めるプログラム
#include<iostream>
using namespace std;
int main()
{
int i=1; //ループで使う変数の初期値を宣言
int sum=0; //合計値
while(i<=100)
{
sum+=i;
i++;
}
cout<<sum<<endl;
return 0;
}
上記プログラムでは
for文と全く同じ内容の処理を行っている。ただし、宣言をしておかないと
いけないことを注意したい。増減値も忘れるとループは抜けないので
出力までたどり着かないだろう。
**無限ループ
ある処理を永遠に繰り返したい。そんなときに用いるのが無限ループである。
ACMの問題にはもちろん、実際のソフトウェアにも多く用いられる。
for文、while文のどちらでも可能であり、記述例を載せる。
for(;;)
{
[処理]
}
while(1)
{
[処理]
}
上記は2つとも無限ループとなる。無限ループは文字通り無限に処理を繰り返し
続ける。
***他
break;
これはそのループから抜けたいときに使う。case文でも使ってた。
0が入力されたとき、プログラムを終了するといった
ある条件のとき、ある処理をするという感じで使うのが主。
continue;
ループの処理を飛ばしたいときに使う。まあいつ使うねんというと
1 2 3 4 5
○ ○ ○ × ○
のような4だけすっ飛ばしたいときに
if文で数値が4のとき、continue;という感じで用いる。
do-while文というのがある。while文と似ているが大きな違いとして
while文では繰り返し処理をする前に条件式で判定を行うが、do-while文では
繰り返し処理が行われた後に条件式で判定が行われる。
つまり、最低限1回の処理が行われるということ。
do
{
実行する処理1;
実行する処理2;
実行する処理3;
....
}while([条件式]);
*繰り返し文
繰り返し文とはある回数の数だけ処理を繰り返すときに用いる。
今回はメジャーな繰り返し文2つを挙げる。
**for文
for([初期値];[条件式];[増減値])
{
[処理]
}
上記が記述例である。初期値から増減値分の変化が起こり、条件式の条件の間、
処理を繰り返すという内容である。
繰り返し文として一番多く用いられるものだろう。実際の例を見てみる。
例)1~100までの総和を求めるプログラム
#include<iostream>
using namespace std;
int main()
{
int sum=0; //合計値
for(int i=1;i<=100;i++)
{
sum=sum+i; //sum+=i;でもおk
}
cout<<sum<<endl;
return 0;
}
上記プログラムでは
1から100までのループが回っている。このループの中で、合計値として用意した
変数sumにループの数値iを足して総和を求めている。
※forの中にint iと宣言している
ループを使うための変数なのでここで宣言している。C言語では許されない。
また、このiが有効なのはfor(){}の{}の中だけである。いわゆるローカル変数
なので、注意しないといけない。
※sum=iではダメなのか
ダメ。代入だけになるので最終的には100が代入されて100が出力される。
sumと足すことで今までの足した分と足すことができる。
**while文
while([条件式])
{
[処理]
}
記述例は上記。while文も同じく繰り返し文だが、記述方法が違うので注意。
また、処理の中に増減値を入れないと繰り返し文から抜けない。
for文と同じ例を用いて実際に書いてみる。
例)1~100までの総和を求めるプログラム
#include<iostream>
using namespace std;
int main()
{
int i=1; //ループで使う変数の初期値を宣言
int sum=0; //合計値
while(i<=100)
{
sum+=i;
i++;
}
cout<<sum<<endl;
return 0;
}
上記プログラムでは
for文と全く同じ内容の処理を行っている。ただし、宣言をしておかないと
いけないことを注意したい。増減値も忘れるとループは抜けないので
出力までたどり着かないだろう。
**無限ループ
ある処理を永遠に繰り返したい。そんなときに用いるのが無限ループである。
ACMの問題にはもちろん、実際のソフトウェアにも多く用いられる。
for文、while文のどちらでも可能であり、記述例を載せる。
for(;;)
{
[処理]
}
while(1)
{
[処理]
}
上記は2つとも無限ループとなる。無限ループは文字通り無限に処理を繰り返し
続ける。
***他
break;
これはそのループから抜けたいときに使う。case文でも使ってた。
0が入力されたとき、プログラムを終了するといった
ある条件のとき、ある処理をするという感じで使うのが主。
continue;
ループの処理を飛ばしたいときに使う。まあいつ使うねんというと
1 2 3 4 5
○ ○ ○ × ○
のような4だけすっ飛ばしたいときに
if文で数値が4のとき、continue;という感じで用いる。
do-while文というのがある。while文と似ているが大きな違いとして
while文では繰り返し処理をする前に条件式で判定を行うが、do-while文では
繰り返し処理が行われた後に条件式で判定が行われる。
つまり、最低限1回の処理が行われるということ。
do
{
実行する処理1;
実行する処理2;
実行する処理3;
....
}while([条件式]);
**練習問題
問1)1~100までの総和を求めるプログラム
問2)10の階乗を出力するプログラム
問3)無限ループを用いて、入力するたび、その数値が0より↑か、0より↓かを判定するプログラム
ただし、0の場合は0と判定してループを終了させる。