インターネットエクスプローラで学ぶC言語(入門編)

レッスン8:判断(その1)

このレッスンで学ぶことは?
今までのプログラムでは、上から順番に実行されてきました。順番を変える方法をこのページから学んでいきます。まず、条件を考え、その条件が満たされる場合とか、満たされない場合によって、実行する内容を変えてみましょう。
クイックジャンプ: 形式 |  | 動作確認 | 次のレッスンでは?

形式
if文

「10万円貯金できたら、海外旅行しよう」のように、私たちは「何々だったら、何をしよう」という行動をしばしばとります。すなわち、ある条件を考えて、その条件が満たされたら何々をする、満たされなかったら何々をする、というように、いろいろ判断しながら、生活しています。コンピュータも判断ができます。その方法を説明します。
 判断をさせる書き方は、次のようになります。

if  (条件)
  処理;

意味:「条件」が満たされるとき「処理」が行われ、「条件」が満たされないときは「処理」は行われません。

 「条件」は括弧( )で囲みます。
 より詳細な説明はすぐ後にありますが、1つ例を挙げますと、変数aの値が0(ゼロ)より大きい場合だけbに10を代入したいときは、次のようにします。
  if (a>0)
    b=10;
上の例では、条件はa>0です。条件が満たされるときの処理はb=10です。ifや条件の前後に空白をいくつ入れてもかまいません。

Q&Aコーナー

Q: if (a>0)の後の行末に「 ; 」(セミコロン)がないのはなぜですか
A: ここをクリック。

 

Q&Aコーナー

Q: ifの後ろにelseというのを見たことがあります。このelseは何ですか?
A: ここをクリック。

条件

条件にはいろいろな書き方がありますが、この入門編では、次のような簡単なものだけを使います。数学で学んだ記号とほぼ同じですので、すぐ理解できるでしょう。

条件 記号 例の説明
等しい == a==b
a==10
aの値とbの値が等しいかどうか
aの値が10に等しいかどうか
等しくない != s!=100 sの値が100に等しくないかどうか
大きい > x>y xの値がyの値より大きいかどうか
以上(大きいか等しい) >= u>=v uの値がvの値以上かどうか
以下(小さいか等しい) <= a<=0 aの値が0以下であるかどうか
小さい < c<0 cの値が0より小さいかどうか

例
プログラム

次のようなプログラムをみてみましょう。
[注意]左端の番号は、プログラムの一部ではありません。各行を区別するために付けた番号です。

  1. void main(void)
  2. {
  3.   int x,y;
  4.   x=10;
  5.   if (x>=0)
  6.     y=1
  7. }

プログラム説明

 4行目で、xの変数に10が代入されます。
 5行目6行目では、xの値によって処理を変えています。xの値が0以上のときは6行目を実行します。上のプログラムでは、xの値は10で、0以上ですので、6行目が実行され、yに1が代入されます。

動作確認
それでは、上の例の動作確認をしてみましょう。また、プログラムを変更して、下の動作確認をしてみましょう。

Cシミュレータ
Cシミュレータによる動作確認をするときは上の絵をクリック
[注意]このリンク先のページはInternet Explorer 4.0以降で正しく表示されます。

練習

問題: aの変数に記憶されている値が0以上のときaの値を1つ増やし、0以上でないときaの値を1つ減らすプログラムを作成しましょう。
解答例: ここをクリック。

次のレッスンでは?
上のプログラムでは、条件を満たす場合の処理は1つしか書いていません。複数の処理をするときは、それらの処理を1つにまとめます。次のレッスン9では、複数の処理を1つにまとめる方法を説明します。[レッスン9へ]

[戻る]


TitleLineAnim.gif (2453 バイト)
http://or-lab.asahi-u.ac.jp/

このページの最終更新日は 00/02/28 です。
このページに関するご意見・コメントは板谷雄二(itaya@alice.asahi-u.ac.jp)までお願いします。

(C) 板谷雄二