RoboCup Junior Japan Rescue Kanto OB
2005~2013
2005~2013
条件文の続きです。
今日は前回の予告通りに「何回ループを行うか」というループを、
while文やdo~while文より簡単に作れる条件文を 紹介します。
その条件文の名前はfor文。
while文やdo~while文と同じようなル―プ形の条件文です。
ちょっと簡単なプログラムを書いてみましょうか。
#include <stdio.h>
int main(void)
{
int i;
for(i=1;i<=5;i++){
printf("%d回目のループです。/n",x);
}
return 0;
}
例えば、こんなプログラム。
これは前回のwhile文の時にサンプルとして書いた、
このプログラムと同じ出力結果になります。
#include <stdio.h>
int main(void)
{
int i;
i=1;
while(i<=5){
printf("%d回目のループです。/n",x);
i++;
}
return 0;
}
確かこれの出力結果は
1回目のループです。
2回目のループです。
3回目のループです。
4回目のループです。
5回目のループです。
となりましたよね?
上のfor文を使ったプログラムでもこれと同じ出力結果になります。
上のプログラムと下のプログラム、結果的には同じですが、書き方は全然違います。
じゃあまずどこが違うかを探してみましょう。
まずループに入る前のi=1;つまり最初にiに数字を入れる代入の式の有無があります。
while文ではありますが、for文にはありません。
その代わり、for文の条件の括弧の中に似たようなものがありますよね。
for(i=1;i<=5;i++){
この一番左の部分に
そしてこの真ん中の部分はwhile文の時の条件と同じであることがわかります。
そして一番右、i++というものですが、これはwhile文のどこかで見覚えがありませんか?
while文の下から4行目にありますよね?i++;って。確かこれはiに1を足すという、
インクリメント演算子とかいうやつでした。
これ、for文の方ではありませんよね?
違いといえば、こんなものでしょうか。この違いはどういうことかといいますと、
つまりwhile文で回数ループを行うときは、プログラム内で最初のiの値を代入する文を書いたり、
ループごとにiの値を増やすような文を個別に書かなくてはなりませんでした。
でもfor文では、それを一個一個代入したりする文をプログラム内に書く必要はなく、
全部for文の条件の中にまとめてかけるという訳です。
ここでもう一回for文の条件の部分を確認しましょう。
for(i=1;i<=5;i++){
このようになっていて、i=1とi<=5とi++がセミコロン(;)で分けられていました。
これはそれぞれ全く別の命令を示していて、
一番左の部分は「初期化」の部分と言われ、ループ前の変数の値を定義します。
そして真ん中の文がwhile文と同じ条件の文になります。
この「iが5以下である」という条件が成立する間この文を繰り返すという命令になります。
そして一番右端がループ内の処理が1回終わるごとに行う命令を記述する部分です。
今回はここにi++とありますが、これによって、このループ処理が一回行われるごとにiに1足していく処理になります。
要するにこのプログラムの場合、ループは最初i=1の状態でスタートし、iが6になるまでループを繰り返します。
そして一回ループ内の処置が終わるごとに、iの値が1ずつ増えていくようなプログラムになるのです。
これがfor文の基本構造です。
また、条件の確認の位置はwhile文と同じになるので、図にするとこのようになります。
実はwhile文の使いまわしだったり(笑)
とりあえずfor文は駆け足でしたが以上で終了です。
次はもうひとつだけ条件文を紹介します。
今度はif文を発展させたようなものになります。
それではー。
(^・ω・)ノRadiumProduction in RoboCup Junior
今日は前回の予告通りに「何回ループを行うか」というループを、
while文やdo~while文より簡単に作れる条件文を 紹介します。
その条件文の名前はfor文。
while文やdo~while文と同じようなル―プ形の条件文です。
ちょっと簡単なプログラムを書いてみましょうか。
#include <stdio.h>
int main(void)
{
int i;
for(i=1;i<=5;i++){
printf("%d回目のループです。/n",x);
}
return 0;
}
例えば、こんなプログラム。
これは前回のwhile文の時にサンプルとして書いた、
このプログラムと同じ出力結果になります。
#include <stdio.h>
int main(void)
{
int i;
i=1;
while(i<=5){
printf("%d回目のループです。/n",x);
i++;
}
return 0;
}
確かこれの出力結果は
1回目のループです。
2回目のループです。
3回目のループです。
4回目のループです。
5回目のループです。
となりましたよね?
上のfor文を使ったプログラムでもこれと同じ出力結果になります。
上のプログラムと下のプログラム、結果的には同じですが、書き方は全然違います。
じゃあまずどこが違うかを探してみましょう。
まずループに入る前のi=1;つまり最初にiに数字を入れる代入の式の有無があります。
while文ではありますが、for文にはありません。
その代わり、for文の条件の括弧の中に似たようなものがありますよね。
for(i=1;i<=5;i++){
この一番左の部分に
そしてこの真ん中の部分はwhile文の時の条件と同じであることがわかります。
そして一番右、i++というものですが、これはwhile文のどこかで見覚えがありませんか?
while文の下から4行目にありますよね?i++;って。確かこれはiに1を足すという、
インクリメント演算子とかいうやつでした。
これ、for文の方ではありませんよね?
違いといえば、こんなものでしょうか。この違いはどういうことかといいますと、
つまりwhile文で回数ループを行うときは、プログラム内で最初のiの値を代入する文を書いたり、
ループごとにiの値を増やすような文を個別に書かなくてはなりませんでした。
でもfor文では、それを一個一個代入したりする文をプログラム内に書く必要はなく、
全部for文の条件の中にまとめてかけるという訳です。
ここでもう一回for文の条件の部分を確認しましょう。
for(i=1;i<=5;i++){
このようになっていて、i=1とi<=5とi++がセミコロン(;)で分けられていました。
これはそれぞれ全く別の命令を示していて、
一番左の部分は「初期化」の部分と言われ、ループ前の変数の値を定義します。
そして真ん中の文がwhile文と同じ条件の文になります。
この「iが5以下である」という条件が成立する間この文を繰り返すという命令になります。
そして一番右端がループ内の処理が1回終わるごとに行う命令を記述する部分です。
今回はここにi++とありますが、これによって、このループ処理が一回行われるごとにiに1足していく処理になります。
要するにこのプログラムの場合、ループは最初i=1の状態でスタートし、iが6になるまでループを繰り返します。
そして一回ループ内の処置が終わるごとに、iの値が1ずつ増えていくようなプログラムになるのです。
これがfor文の基本構造です。
また、条件の確認の位置はwhile文と同じになるので、図にするとこのようになります。
実はwhile文の使いまわしだったり(笑)
とりあえずfor文は駆け足でしたが以上で終了です。
次はもうひとつだけ条件文を紹介します。
今度はif文を発展させたようなものになります。
それではー。
(^・ω・)ノRadiumProduction in RoboCup Junior
カレンダー
最新CM
カテゴリー
らじぷろ目次
らじぷろ検索機
最新記事
(01/01)
(01/03)
(08/27)
(04/29)
(01/01)
(11/20)
(09/06)
(09/04)
(08/09)
(08/06)
(07/27)
(05/29)
(03/15)
(01/01)
(05/07)
プロフィール
HN:
Luz
性別:
男性
アーカイブ