ページ 11

ループ文についての質問なのですが

Posted: 2013年3月19日(火) 20:38
by ビギナー
-1を入力するとループを出るコードなのですが
int i = 0,array[10];

do {
printf("%d番目の数:",i);
scanf("%d",&array);
i++;
}while (array != -1);

どうしてwhile (array != -1);
ではなくてwhile (array != -1)なのでしょうか?
arrayの中の-1の意味が理解できません
どなたか教えていただけると幸いです

Re: ループ文についての質問なのですが

Posted: 2013年3月19日(火) 20:44
by Saula

コード:

int i = 0,array[10];

do {
	printf("%d番目の数:",i);
	scanf("%d",&array[i]);
	i++;
}while (array[i -1] != -1);

だから、iが++された後に判定しているから、ではないですか?

i=0からスタート
1.array(=array[0])にキーボードから入力
2.i++(これによってi=0からi=1になる)
3.入力した数値が-1でないかを判定する(今i=1だから、array[0]をチェックするにはarray[i-1]をチェック)

これが毎回繰り返されているということでは。

Re: ループ文についての質問なのですが

Posted: 2013年3月19日(火) 20:51
by ビギナー
なるほどよくわかりましたdoの中で++1しているから
-1してあげないといけないんですね

ひとつ番号がずれているのを見落としていました

丁寧な回答ありがとうございます

今後ともまた困ったことがありましたら質問させていただきます