C言語関係掲示板

過去ログ

No.75. FOR文で最初から条件を満たしてない場合


はじめまして、早速質問をさせていただきます。

質問はFOR文についてです。

例えばscanfを用いてターミナルからデータ型の変数aに値を格納する場合

for(;a<100;a++){
処理A;
}

とあるとします。
この時、aに格納された値がすでに100を超えていた場合どうなるのでしょうか?エラーが生じるのか、それともFOR文には入らず処理Aが行われずに済むのでしょうか?
ターミナル入力される値aが100を超えている場合は、処理Aを行わないようにしたいのですが。
どなたか教えて頂けないでしょうか?


>質問はFOR文についてです。
>
>例えばscanfを用いてターミナルからデータ型の変数aに値を格納する場合
>
>for(;a<100;a++){
>処理A;
>}
>
>とあるとします。
>この時、aに格納された値がすでに100を超えていた場合どうなるのでしょうか?エラーが生じるのか、それともFOR文には入らず処理Aが行われずに済むのでしょうか?
>ターミナル入力される値aが100を超えている場合は、処理Aを行わないようにしたいのですが。
>どなたか教えて頂けないでしょうか?

超簡単なプログラムでも作って、実際に試して見るのが一番でしょう。
for文の前後と処理Aで適当なメッセージでも表示しとけばわかりやすいかな。


こんにちは。

> ターミナル入力される値aが100を超えている場合は、
> 処理Aを行わないようにしたいのですが。

for(初期化式;継続条件式;再初期化式)){
    処理;


継続条件式を最初から満たさない場合は1度も「処理」は実行されません。
while文も同様です。

補足ですが、条件に関わらず1回は処理を行いたい場合は「do〜while文」
を使ってください。

shuさんが言うように簡単なプログラムで確認してみるといいですよ。


ども。

レスというか、なんというか、ですが。

以前、

#define N 100

..略..

unsigned int i;
for(i=N-1;i>=0;i--) {
...
}

とかやってしまって、コンパイラに、これじゃ終わらないよーと
警告されたことがあります。おーなんて賢いんだー(というか
自分がアサハカ)と思いました。BCBだったかな。

提示された例に関しては試してみるのがよいかと。

では。


みなさんお返事ありがとうございます。
ご指摘がありましたように、試してみます。ありがとうございました。

戻る


「初心者のためのポイント学習C言語」 Last modified:2001.11.15
Copyright(c) 2000-2002 TOMOJI All Rights Reserved