この記事では、プログラムを構成する要素である式(expression)と文(statement)について記載しています。
多くのプログラマが感覚的にも理解出来ている内容だと思われますが、これを意識することで文法の理解に役立つことがあると思いましたので、下記に具体例を交えてまとめてみました。
式(expression)
式とは何らかの値を生成する記述の単位です。基本的には後述の文の一部として機能しており、式のみで記述されることは基本的にはありません。
下記では「ival」、「0」、「1」、「ival + 1」、「ival = ival + 1」は全て式になります。
int ival = 0;
ival = ival + 1;
文(statement)
文は端的に言うと処理的に意味を持つことができる記述の最小単位と言って良いと思います。
いくつかの例を下記に記載します。
宣言文(declaration statement)
宣言はそのプログラム内での名前(ival)の処理を定義するもので文として扱われます。
int ival;
この宣言によりivalはそのプログラム内でint型として利用できるようになります。
例えば、int型は加算演算子(+)や代入演算子(=)は使用可能ですが、構造体ではないためドット演算子(.)は使用できません。
int ival = 0;
ival = ival + 1; // OK
ival.menber; // NG (int型はメンバ変数を持たないため「.」は使えない)
式文(expression statement)
まず、何らかの値を返す記述の単位を式と呼びます。
式はそれ単体では意味を成さず、何らかの文の一部になっています。
式の末尾に「;」を付けることで処理的に意味を持つことができる式文となります。
ival = ival + 1; // 式文
複合文(compound statement)
{}で複数の文を囲うことで、囲った複数の文を一つの文とします。
例えば、if文等で複数の文を処理しなければならない場面等に登場しています。
int ival = 0;
{ // 複合文 {} 内の複数の文を一つの文とします
ival = ival + 1;
ival = ival - 1;
}
選択文(selection statement)
文字通り選択文の一つであるif文です。
他にも特別な意味を持つキーワードがあり、これらが使用されて構成されたコードも基本的には文になります。
if (ival > 0) ival = 0; // if文
まとめ
式(expression)と文(statement)について具体例を交えて記載いたしました。
本記事の内容が訪問頂いた貴方のお役に立てれば幸いです。
内容の正確性には可能な限り配慮しておりますが、誤りや見落としが含まれる場合があります。
また、学習の進行や考え方の変化により記事の内容は随時加筆・修正される場合がありますので、あらかじめご了承いただけますと幸いです。