ここでは、そもそもプログラムとは何か、プログラムを構成する式、文、ブロック、変数、定数、演算子などプログラミングを学ぶ上で必要な基本的な知識について解説します。
プログラムとは何か?
コンピュータプログラムとは何か?
一言で言うと、
コンピュータに対する命令(処理)を記述したもの
です。
ただ、プログラムが処理する対象であるデータや、処理を駆動するきっかけ(トリガー)も合わせて考慮する必要があります。
プログラムの処理は、ボタンを押すなど何かのイベント(事象)が発生することによって駆動されたり、特定の時間がきたら駆動されたり、データが特定の状態になったら駆動されたりします。
それぞれ、イベントドリブン、タイムドリブン、ステートドリブンといいます。
イベントドリブンの場合、人や機械などイベントを起こす主体が必要です。
プログラムの構成要素
式と文
ここから、プログラムを構成する基本的な要素について解説します。
まず、式と文です。
まず、プログラムは式と文から構成されます。
式とは、
コンピュータに評価(evaluate)される値を生成するもの
です。
例えば、プログラムとして、
1
と記述すると、コンピュータは、これを「1」と評価します。
あるいは、プログラムとして、
1 + 1
と記述すると、コンピュータは、これを「2」と評価します。
次に文ですが、これは、
コンピュータが処理する1ステップ
のことです。
「文」は一つ以上の「式」で構成されています。
プログラムを記述する言語をプログラム言語といいますが、プログラム言語によっては、文の終わりにコロン(;)をつけて文を明確にするものもあります。
例えば、
1 + 1;
は一つの「式」によって構成された「文」です。
それから、複数の文をまとめたものをブロックといい、ブロックで囲まれた文をブロック文といいます。
ブロックは通常{}(この波括弧をブレースといいます)で囲みます。
式は、数値など単純な値だけでなく、この後説明する変数や演算子から構成されます。
また、文には、単純な処理を記述するものだけでなく、処理の流れを制御する制御文(後述)もあります。
変数と値
続いて変数と値について説明します。
変数とは、
データ(値)を識別するもの
です。
値とは、
変数に格納される具体的なデータ
です。
変数に名前(変数名)をつけて、コンピュータに「これは変数です」と教えることを変数の宣言といいます。
変数を宣言することによってコンピュータはデータの記憶領域を確保します。
変数を宣言するとき、変数に整数や文字などデータの種類を指定することができます。このデータの種類のことをデータ型といいます。
例えば、
整数型 i;
は、iという変数名の整数型の変数を宣言している「文」になります。
代表的なデータ型には、整数や少数を表す数値型、文字を表す文字型、真か偽を表す論理型があります。
演算子
足し算や引き算など、データを操作することを演算といいますが、演算を表す記号を演算子といいます。
演算子はプログラム言語によって異なります。
代表的な演算子には以下があります。
- 代入演算子
変数にデータ(値)を代入する操作を=(イコール)で表します。
例えば、
a = 1;
は、aという変数に1を代入するという操作になります。
コンピュータは1という値を評価してaという変数の記憶領域に格納します。
データを識別するもので、一度、値が入ると再度代入することはできないもの「定数」といいます。
変数は何度も代入することができます。 値が再代入されると、変数の値が置き換わります。
通常、プログラム言語には変数と定数を識別する記号があります。
例えば、JavaScriptの場合、変数名の前にconstをつけると定数を表し、varあるいはletをつけると変数を表します。
const a = 1;
は定数aに1を代入した文になります。
aは定数なので再度代入することはできません。 - 算術演算子
加減乗除の算術演算です。
例えば、JavaScriptの場合、
let a = 1 + 1;
では、コンピュータが1+1を評価した結果である2という値を変数aに代入します。
この場合、「+」が加法を表す算術演算子です。 - 関係演算子
等号や不等号で関係を表す演算子です。
例えば、
a < b;
は、aよりbが大ことを表す文で、コンピュータは、a < bの真偽を評価します。
この場合「<」が関係演算子になります。 - 論理演算子
真偽(論理)値とともに用いられ真偽値を返す演算子です。
例えば、JavaScriptの場合、
a || b;
は、aまたはbの結果を表す文です。
この場合、「||」が論理演算子になります。
制御文
プログラムの制御文には選択と反復があります。
制御文はプログラム言語によって書き方が違います。
選択
選択には、if文とswitch文があります。
- if文
if文は次のように条件式によって条件分岐させる文です。
条件式が評価され真であれば実行文が実行されます。
if(条件式){
実行文;
}
複数条件式を各場合はelse ifを使って次のように書きます。
if(条件式){
実行文;
}else if(条件式){
実行文;
} - switch文
switch文は、次のような構文で式の評価結果が指定した値である場合に行う処理を並べて書きます。
switch文はif文と同様に式の評価結果に基づく条件分岐を扱います。
break文は、switch文から抜けてswitch文の次の文から実行するためのものです。
switch(式){
case ラベル1:
実行文;
break;
case ラベル2:
実行文;
break;
}
if文やswitch文を構成する{}(ブレース)はブロックです。
反復
反復には、for文とwhile文があります。
- for文
for文は繰り返す範囲を指定した反復処理を書くことができます。
for(初期化式;条件式;増分式){
実行文;
} - while文
while文は条件式が真であるならば、反復処理を行います。
while(条件式){
実行文;
}
for文やwhile文を構成する{}(ブレース)はブロックです。