今回は補講として、「関係式」と「初期化」について説明します。
関係式について
関係式は関係演算子(relational operator)と論理演算子(logical operator)を使った式です。
関係演算子は比較演算子(comparison operator)とも呼ばれ、等号や不等号を使って2つの値の関係を調べます。関係演算子を含む式を関係式(relational expression)または条件(condition)と呼ばれます。このような関係式を論理演算子で組み合わせて1つの関係式を作ることができます。
プログラミングコードの書式などに「if(条件)」または「if(condition)」などの記述がよく見られますが、これは括弧内が関係式になることを表しています。
関係式で2つの値を比較した結果はブール型の値で返されます。比較対象の値の間に演算子で示された関係が成立した場合true(真)、成立しなかった場合はfalse(偽)を返します。この「true」と「false」を数値で表すこともあります。その場合、falueは「0」、trueは「1」または「1以外の値」が返されます。C言語などのブール型を持たないプログラミング言語ではこの数値(1/0)で真偽を表します。
ブール型を返す関数(メソッド)について
関係式の代わりに、ブール型を返す関数を使用することもあります。例えば、
boolean exists() // ファイルが存在する場合は真、存在しない場合は偽
static boolean isDigit(char c) // 文字cが数字の場合は真、そうでない場合は偽
という関数(メソッド)があり
if(file.exists())
if(character.isDigit(‘A’)) // ‘A’は数字でないのでfalseが返る
のように使われます。
これらはJavaの例ですが、他の言語にも同じようにブール型を返す関数(メソッド)が存在します。ブール型を持たないプログラミング言語の場合でも、1/0を返す関数があります。秀丸エディタでも、1/0を返すキーワードや関数が多数用意されています。
初期化
多くのプログラミング言語では変数を宣言して使用します。宣言とはつまり「指定された変数にふさわしい容器(メモリ)を用意する」ということです。宣言した変数が整数型なら整数型のサイズ、文字型なら文字型のサイズのメモリを確保し、指定した変数名を確保されたメモリに関連付けます。
この宣言されたばかりの容器には何が入っているのでしょうか。
実は分からないのです。Nullかもしれませんし、数値あるいは意味の無いデータの残骸かも知れません。こうした無効なデータを残したままにしないようにするため「初期化(initialization)」を行います。初期化とは次のように「変数を宣言したとき、同時に値を格納すること」を指します。宣言した後で変数に値を代入することとは異なります。
int num1 = 100; // 整数型の変数num1を宣言して100を代入
VBAなど変数の初期化が不要(または不可)なプログラミング言語もあります。これは宣言と同時にプログラムが自動で初期化を行ってくれるからです。このような言語でも、多くの場合定数は初期化する必要があります。
変数の初期化が必須かどうかはプログラミング言語によります。初期化が可能な言語を使うのであれば、不用意なミスを避ける上でも、変数の初期化を習慣にしておくと良いと思います。初期化が不要(または不可)な場合でも、初期化について理解しておくことが大切です。
まとめ
今回は補講として、関係式と初期化について説明しました。
次回は、少し間を置いて「クラス」について説明する予定です。
では、また。