H8+C言語入門:第4章 何もしない(3):式
第4章でも、何もしないプログラムを作成します。
そろそろ何もしないプログラムばかりなので、飽きてきましたか?
もう少し、何もしないプログラムを続けますが、すべて短いプログラムです。
その中に書かれる文の一つひとつをきちんと説明できる様にしましょう。説明できる様に
基本となるC言語の書き方をしっかり覚え、理解し、使える様にしましょう。
そうすると大きなプログラムを組む時に必ず役立ちます。小さなプログラムの集まりが、
大きなプログラムになります。正しく動く小さなプログラムを集めると、必ずしも必ず動
く大きなプログラムになるわけではありませんが、動く様にしていく近道になります。
第2章では、main関数の書き方を示しました。第3章では、C言語で処理を書く際の基本で
ある変数について述べました。第4章では、変数や数値を使った式について述べます。
プログラムで処理をする、とは、”計算”をさせることを指すことは、先に述べました。
サンプル4-1を見てください。
少しプログラムらしくなってきました。
先の例に続き、電卓の操作で説明すると、足し算をしたいので+キーを押したり、引き算
をしたいので−キーを押して、操作終了とする時は、=キーを押して計算結果を確定させ
るというように触りますね。
この操作は、計算処理そのものです。
プログラムでそれを示すものを式といいます。そして、セミコロン”;”で区切ると「文」
となります。
<サンプル4-1>
void main(void)
{ /* main関数の始まり */
int i; //変数iの宣言
i = 0; //変数iの初期化:0をセットする。
i++; //変数iをインクリメントする。
} /* main関数の終わり */
サンプル4-1に戻りましょう。
変数を使うには、次のステップを通ることは、先の章で述べました。
1)宣言 →前章参照ください。
2)初期化 →前章参照ください。
3)計算
そうそう、数学や物理の世界での計算では、=は、等号といって、その記号の左辺と右辺
の値が同じであるということを示す為の記号ですが、プログラムでは、右側の値を左側の
変数に代入するという命令になります。
つまり、=の左辺は、常に変数である必要があります。また、右辺は式や数値のいずれで
も構いません。
計算をします。ここでは、式として、下記のような一文があります。
i++;
変数iに1を加える、インクリメントするという指示をしています。
書き換えると次の処理(計算)と同じ意味になります。
i = i + 1;
また、こんな書き方もできます。
i += 1;
この式の最後にセミコロン 「;」をつけると文になります。
つまり「i = 0;」や「i++;」、「i = i + 1;」、「i += 1;」は、文です。
そして、プログラムは、文を上から下へ向かって実行(処理)していきます。
<サンプル4-2>
void main(void)
{ /* main関数の始まり */
int i=0; //変数iの宣言と変数iの初期化:0をセットする。
i=i+1; //変数iに1を加え、iに保存する(インクリメントする)。
} /* main関数の終わり */
では、実際にH8を動かして、またまた「何も動かないこと」 を確認してください。
ここまでは、単純に処理を上から下へ向かって、実行するものとなっています。
これでは、・・の時に・・したい、というような、特定の状況や状態になったら、何か特
別なことをしたいということができません。
それをする為にものが別にC言語に準備されています。
それは、関係演算子、論理演算子というものです。
それらを使って条件を表し、処理を変える「制御文」というものも用意されています。
制御文には次の様なものがあります。次章から、それぞれについて紹介していきますね。
−制御文−
while文
for文
if文
switch文
式の話題の最後として、制御文を使う為に必要な関係演算子、論理演算子を紹介します。
式としては、極めて単純です。二つの変数を比較して、小さい、大きい、等しいなどを結
果として表すものが関係演算子です。その関係演算子を組合せる時に使うもの、例えば、
・・且つ・・とか、を論理演算子といいます。それでは、それぞれを見てみましょう。
・関係演算子
a < b →aはbよりも小さい
a > b →aはbよりも大きい
a <= b →aはb以下である
a >= b →aはb以上である
a == b →aはbと等しい
a != b →aはbと等しくない
上記の様な演算子を関係演算子といい、これらを使って表した式は、何らかの値を持つ
ことになります。その 値は、条件が満たされた時(この状態を「真」という)は1、満た
されなかった時(この状態を「偽」という)は、0になります。
制御文では、この1か、0で(の判断で)処理を変更する様に動きます。
・論理演算子
a && b →aとbが真なら真、でなければ偽になる。
a || b →aか、bのどちらかが真なら真、でなければ偽になる。
!a →真偽が反転する。
「a && b」を分かりやすくいうと、「aしかもb」とか、「a且つb」とかという様にな
ります。数学でいうと論理積というものですね。集合でいうと交わりということですね。
「a || b」も同様に分かりやすくいうと、「aまたはb」という様になります。数学でいう
と論理和というものですね。集合でいうと結びですね。
「!a」も分かりやすくいうと「aではなかったら」という様になります。数学でいうと、
否定ですね。集合で言うと補集合ですね。
そして、ここで重要なのは、論理演算子の例題の左右にあるaやbを、その前に述べた関
係演算子で組み立てた式とすることもできます。例えば、
a < b && b < c
という様な表現にすることができます。難しく見えますが、意味を分割させて考えると
分かりやすいです−「aはbよりも小さくて、しかもbはcよりも小さい」ということにな
りますね。蛇足ですが、これを数学上の表現で表すと、a < b < cとなります。
−まとめ−
1. 「+」等を使って演算することができる。計算方法は四則演算に 基づいている。