式 (シキ) とは | 意味や読み方など丁寧でわかりやすい用語解説
式 (シキ) の読み方
日本語表記
しき (シキ)
英語表記
expression (エクスプレッション)
式 (シキ) の意味や用語解説
ITの分野において「式」という言葉は、プログラミング言語を学ぶ上で避けて通れない非常に重要な概念の一つである。これは、値を生成するためのコードの断片を指し、プログラムが何らかの計算や判断を行い、その結果として新しい値を生み出す際に不可欠な要素となる。式は、オペランドと呼ばれる値や変数、そしてそれらに対して特定の操作を行う演算子を組み合わせて記述される。プログラマが記述した式は、プログラムの実行中に「評価」されることで、最終的に単一の結果値へと帰結する。例えば、`10 + 5`という単純な記述は一つの式であり、評価されると`15`という数値が生成される。また、`age >= 18`のような記述も式であり、`age`という変数の値に応じて真(True)か偽(False)かというブール値が結果として得られる。このように、式は変数への値の代入、条件分岐における真偽の判定、繰り返し処理の終了条件など、プログラムのあらゆる場面で利用され、その動作ロジックを形作る基本的な構成要素となっている。 「式」をより深く理解するためには、その構成要素、評価プロセス、そして関連する概念である「文」との違いを知ることが助けとなる。 まず、式の主要な構成要素は「オペランド」と「演算子」である。オペランドとは、式の中で演算の対象となる値のことである。これには、具体的な数値(例: `100`)、文字列(例: `"Hello"`)、真偽値(例: `true`)といった「リテラル」と呼ばれるものや、メモリ上に確保されたデータを参照する「変数」(例: `price`、`name`)、さらには他の式の評価結果などが含まれる。一方、演算子とは、オペランドに対して特定の操作を行う記号のことである。プログラミング言語には多様な演算子が用意されている。例えば、加算(`+`)、減算(`-`)、乗算(`*`)、除算(`/`)といった「算術演算子」は数値に対して数学的な計算を行い、新しい数値を生成する。また、等しい(`==`)、等しくない(`!=`)、より大きい(`>`)、より小さい(`<`)といった「比較演算子」は二つのオペランドを比較し、その結果として真偽値を返す。さらに、論理積(AND、多くは`&&`)、論理和(OR、多くは`||`)、論理否定(NOT、多くは`!`)といった「論理演算子」は、主に真偽値を組み合わせて新たな真偽値を生成する。他にも、変数に値を格納するための「代入演算子」(`=`)や、演算と代入を同時に行う複合代入演算子(`+=`、`-=`など)、関数呼び出し(`function_name(...)`)、オブジェクトの生成(`new ClassName()`)なども、特定の値を生成する式として機能する。これらの演算子が、オペランドに対して期待される操作を実行し、最終的な結果値を導き出すのである。 次に、式が結果値を生成するまでの過程を「評価」と呼ぶ。式が評価される際には、プログラミング言語によって定められた「演算子の優先順位」と「結合規則」が適用される。例えば、乗算や除算は加算や減算よりも優先して実行されるため、`2 + 3 * 4`という式は、まず`3 * 4`が評価されて`12`となり、その結果と`2`が加算されて`14`という値になる。プログラマは、括弧(`()`)を用いることで、この優先順位を明示的に変更し、意図した順序で評価を行わせることができる。例えば、`(2 + 3) * 4`と記述すれば、先に`2 + 3`が評価されて`5`となり、その結果に`4`が乗算されて`20`という値になる。また、異なるデータ型のオペランドが混在する場合には、多くの場合、言語の規則に従って暗黙的に、あるいはプログラマが明示的に指示することで、計算可能なデータ型に変換されてから評価が進行する。 最後に、式とよく混同されがちな「文(Statement)」との違いも理解しておくべきである。式が「値を生成する」コードの断片であるのに対し、文は「何らかの処理を実行する」コードの断片である。文の例としては、変数宣言文(例: `int x;`)、条件分岐文(例: `if (condition) { ... }`)、繰り返し文(例: `for (...) { ... }`)などがある。これらの文は、それ自体が直接的な値を生成するわけではなく、プログラムの状態を変化させたり、特定の処理の流れを制御したりする役割を担う。しかし、ほとんどのプログラミング言語では、文の中に式が含まれることが一般的である。例えば、`if (x > 0)`という条件分岐文では、括弧内の`x > 0`という部分が比較式であり、この式の評価結果(真か偽か)によって`if`文の実行パスが決定される。さらに、一部の言語では、式そのものが独立した文として扱われる「式文」という概念も存在する。例えば、`calculate_value(a, b);`のように、関数呼び出し式が独立して記述され、その戻り値が特に利用されない場合でも、関数を実行するという副作用が目的とされることがある。このように、式はプログラムにおける計算と値の生成を担い、文はプログラムの流れと処理の実行を担うが、両者は密接に連携し、互いに組み合わさることで、完全で機能的なプログラムが構築される。式を正確に理解することは、プログラミング言語の基本的な動作原理とプログラムのロジックを深く理解するための第一歩となるのである。