dポイントプレゼントキャンペーン実施中!

#include <stdio.h>
void main()
{

char str[2][6] = {"hello","lop"};
int i = 0;

while(i < 2){

printf("%s\n", str[i++]);

}
}

上のプログラムの条件判定の部分にif文を
つかうとhelloという文字列しか出力されず
while文を使うとhelloとlop 二つ出力され
ます。上の条件判定のif文にした時ととwhile
文にした時の違いはどこなのでしょうか??

どなたかご教授よろしくお願いしますm(_ _)m

A 回答 (3件)

 while は,「かっこ内の条件が成立している間ループする」です。

一方,if は「かっこ内の条件が成立したら以下を実行する」です【反復は起こりません】。

 while (i < 2) { ... } は,まず i == 0 で { } 内が実行されます。そして i++ で i は 1 になります。そして反復します。i == 1 で 2 より小さいですから,もう一度 { } 内を実行 i++ で i は 2 になって,反復します。ここで i < 2 は満たされなくなるので,{ } 内は実行されずに次に実行が移されます。
 一方,if (i < 2) { ... } ですと,「i < 2 ならば { } 内を実行する」だけですから,i == 0 条件は合致,{ } 内を実行します。i++ で i は 1 になりますが,それで反復はしません。そのまま次に実行が移ります。

 以上,おわかりいただけたでしょうか。
    • good
    • 0
この回答へのお礼

早速のお返事有難うございます!
丁寧に解説をして頂きとても分かりやすく
理解する事が出来ました。
本当に有難うございますm(_ _)m

お礼日時:2004/05/21 00:02

if文は分岐でwhile文は繰り返しです。



ifは適合する条件の方の処理を1回のみ実行、whileは適合する条件の間繰り返し実行する。
    • good
    • 0
この回答へのお礼

有難うございます^^
解決することが出来ました!

お礼日時:2004/05/21 00:05

if文だと条件が合っていた場合に実行されるだけで繰り返されません。

だから hello しか出力されません。

一方、while文は条件が満たされている間は繰り返されますので、helloとlopが出ます。
    • good
    • 0
この回答へのお礼

早速の回答有難うございました!
おかげで解決することが出来ました。
すっかり忘れていました。
もう一度初めから勉強しなおしたいと思います^^;

お礼日時:2004/05/21 00:04

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!