インクリメントについて

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
@soft

インクリメントについて

#1

投稿記事 by @soft » 4年前

以下のコードでしつもんです。
実行すると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;
}

アバター
tk-xleader
記事: 153
登録日時: 9年前
連絡を取る:

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

#2

投稿記事 by tk-xleader » 4年前

whileは条件式が真の間繰り返すという文です。「条件式が真」というのは、条件式が0以外の値の場合のことです。

アバター
みけCAT
記事: 6274
登録日時: 9年前
住所: 千葉県
連絡を取る:

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

#3

投稿記事 by みけCAT » 4年前

suji-- という式は、1を引く前のsujiの値を返します。(C言語やC++で、sujiがint型の場合)
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

アバター
みけCAT
記事: 6274
登録日時: 9年前
住所: 千葉県
連絡を取る:

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

#4

投稿記事 by みけCAT » 4年前

@soft さんが書きました:インクリメントについて
ちなみに、提示されたコードにはデクリメントをしている部分はありますが、インクリメントをしている部分は見当たりません。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

@soft

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

#5

投稿記事 by @soft » 4年前

回答ありがとうございます。

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

アバター
みけCAT
記事: 6274
登録日時: 9年前
住所: 千葉県
連絡を取る:

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

#6

投稿記事 by みけCAT » 4年前

@soft さんが書きました:while() この()内が0になると偽となるためそこで終了するという考えで正しいでしょうか?
いいと思います。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

@soft

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

#7

投稿記事 by @soft » 4年前

お二方ともありがとうございます。
解決しました。

閉鎖

“C言語何でも質問掲示板” へ戻る