値や変数、演算子、関数といった要素の組み合わせであり、評価が行われることによって、結果として何らかの値になるもののことです。
「評価」とは、演算を行って値をつくることをいいます。たとえば、3 + 5
という式を評価して「8」という値を得たり、f()
という関数の呼び出しから値を得たり(戻り値がその値)することです。
式に似たものに「文」があります。文は、最終的に値にならないものを指します。関係性としては、文の中に式があります。C言語でいえば、a = 0
は式(代入式)ですが、a = 0;
になると文です。
何が式で、何が文にあたるのか、具体的な規則はプログラミング言語の種類によって異なります。たとえば、if が文の言語がある一方で(C言語、Java など多数)、if を式として扱える言語(Kotlin など)もあります。
if が文である言語では、次のようには書けますが(架空の言語の文法による例です)、
int n;
if (a > b) {
n = a;
}
else {
n = b;
}
次のようには書けません。
int n = if (a > b) {
a;
}
else {
b;
}
これができないのは、if文が値を作り出さないからです。変数 n に与える値がありませんから、このソースコードの意味が決定できません。しかし、if が式の言語ならばこのソースコードは問題ありません。if 全体を評価した結果が値になるからです(ここでは a か b が最終的な値)。
C言語の if は文ですが、条件演算子を使うことで、同じような記述が実現できます。
int n = (a > b) ? a : b;
Programming Place Plus のトップページへ
はてなブックマーク に保存 | Pocket に保存 | Facebook でシェア |
X で ポスト/フォロー | LINE で送る | noteで書く |
RSS | 管理者情報 | プライバシーポリシー |