ページ 11

インクリメントについて

Posted: 2015年8月01日(土) 18:35
by @soft
以下のコードでしつもんです。
実行すると9,8,7~0となるのですがどうして0で終わるのですか?
素人ながらの考えでは-1、-2と無限ループしてしまうように思えてしまいます。
ご教授お願いします。

コード:

#include <stdio.h>

int main(){
	int suji = 10;

	while(suji--){
		printf("%d ",suji);
	}

	printf("\n");
	printf("変数「suji」が0になったので終了します!\n");

	return 0;
}

Re: インクリメントについて

Posted: 2015年8月01日(土) 18:49
by tk-xleader
whileは条件式が真の間繰り返すという文です。「条件式が真」というのは、条件式が0以外の値の場合のことです。

Re: インクリメントについて

Posted: 2015年8月01日(土) 19:12
by みけCAT
suji-- という式は、1を引く前のsujiの値を返します。(C言語やC++で、sujiがint型の場合)

Re: インクリメントについて

Posted: 2015年8月01日(土) 19:14
by みけCAT
@soft さんが書きました:インクリメントについて
ちなみに、提示されたコードにはデクリメントをしている部分はありますが、インクリメントをしている部分は見当たりません。

Re: インクリメントについて

Posted: 2015年8月01日(土) 19:17
by @soft
回答ありがとうございます。

while() この()内が0になると偽となるためそこで終了するという考えで正しいでしょうか?

Re: インクリメントについて

Posted: 2015年8月01日(土) 19:42
by みけCAT
@soft さんが書きました:while() この()内が0になると偽となるためそこで終了するという考えで正しいでしょうか?
いいと思います。

Re: インクリメントについて

Posted: 2015年8月02日(日) 03:26
by @soft
お二方ともありがとうございます。
解決しました。