mj0444.gif (2441 バイト)ASCAmj0440.gif (2248 バイト)  mj0455.gif (2586 バイト)  DAmj0440.gif (2248 バイト)mj0444.gif (2441 バイト)mj0436.gif (2656 バイト)mj0437.gif (1789 バイト)

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

今までのプログラムでは、上から順番に実行されてきました。順番を変える方法をこのページから学んでいきます。まず、条件を考え、その条件が満たされる場合とか、満たされない場合によって、実行する内容を変えてみましょう。

目次

if
動作確認
レッスン9では?

if

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

Pascal・Delphiで判断をさせる書き方は、次のようになります。

if 条件 then
  処理1;

意味:条件が満たされるとき処理1が行われ、条件が満たされないときは処理1は行われない。

より詳細な説明はすぐ後にありますが、1つ例を挙げますと、変数aの値が0より大きい場合だけbに10を代入したいときは、次のようにします。

if a>0 then
  b:=10;

上の例では、条件はa>0です。条件が満たされるときの処理はb:=10です。if、条件、thenの前後に空白をいくつ入れてもかまいません。

Q&Aコーナー

Q:thenの後などの行末に;(セミコロン)がないのはなぜですか
A:ここをクリック。

 

Q&Aコーナー

Q:if then elseというのを見ました。このelseは何ですか?
A:ここをクリック。

条件

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

条件 記号 例の説明
等しい = 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. program handan;
  2. var x,y:integer;
  3. begin
  4.   x:=10;
  5.   if x>=0 then
  6.     y:=1
  7. end.

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

プログラム説明

4行目で、xの変数に10が代入されます。

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

動作確認

それでは、上の例の動作確認をしてみましょう。また、プログラムを変更して、下の動作確認をしてみましょう。動作確認をする前に、Internet Explorerの設定をちゃんとしているか調べてください。

x:=10;の10を-10に変えて、動作確認をしてみましょう。
条件x>=0を他の条件(例えば、x<0、x=5、x<>10など)に変えて、動作確認をしてみましょう。

Pascalシミュレータによる動作確認
[注意]このリンク先のページはInternet Explore 3.0以降で正しく表示されます。

練習コーナー

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

レッスン9では?

上のプログラムでは、条件を満たしたり、満たさなかったりする場合の処理は1つしか書いていません。複数の処理をするときは、それらの処理を1つにまとめることを行います。レッスン10では、複数の処理を1つにまとめる方法を説明します。

[レッスン9へ]


TitleLineAnim.gif (2453 バイト)

Ln769.gif (641 バイト)

このページの最終更新日は 99/03/20 です。
掲載責任者・ページ作成者: (c)板谷雄二(itaya@alice.asahi-u.ac.jp)