コンピュータと会話をする(命令をする)際に、人の言葉に近い表現で記述する言語です。 実行の流れを制御構造として表現します。
| 制御構造 | 意味 |
|---|---|
| 順次(sequence) | 上から順に実行する |
| 分岐(branch) | 条件によって実行する場所を変える |
| 繰返し(iteration) | 同じ処理を繰り返す |
この授業では JavaScript を使います。 本来はブラウザ「Chrome」のコンソール(Ctrl+Shift+J、Mac は ⌘+Option+J)を開いて入力しますが、 このページには同じものを埋め込んであります。下のコンソールにそのまま書いて動かしてください。
> 5 + 2 * 3 ; 11 ↑ プロンプト(prompt)のうしろに書く 5+2*3 を「式(expression)」という。×と÷は * と / で代用する > 1 / 2 - 1 ; -0.5 実数で表される
命令の単位を文(statement)といいます。1 / 2 - 1 ; は文です。
文と文は変数によって関係づけられます。変数とは、一時的に値を格納する場所です。
var x ; var y ; var kotae ; ← 変数宣言 var x, y, kotae ; ← まとめて書いてもよい <変数> = <式> ; ← 代入(assignment)
標準体重は「身長(メートル)の 2 乗 × 22」で求められます。
> var shincyo, meter, hyojun ;
shincyo = 175 ;
meter = shincyo / 100 ;
hyojun = 22 * ( meter * meter ) ;
console.log( hyojun ) ;
67.375
同じプログラムを何度も書かなければならない場合、 プログラムに名前をつけて、その名前で使いまわすことができます。これが関数(function)です。
function <関数名> ( <引数> ) { <プログラム> }
> function std( shincho ) { var meter, hyojun ; meter = shincho / 100 ; hyojun = 22 * ( meter * meter ) ; console.log( hyojun ) ; } > std( 175 ) ; 67.375 > std( 160 ) ; 56.32000000000001
std(175) のように書くことを関数呼出し(function call)といいます。
実行の流れを順次から変えたい場合は分岐を使います。
if ( <条件> ) <文1> else <文2>
| より大きい | より小さい | 以上 | 以下 | 等しい | 異なる |
|---|---|---|---|---|---|
| > | < | >= | <= | == | != |
「等しい」は == です。
= ひとつは代入で、意味がまったく違います。初学者がいちばんよく間違えるところです。
同じ処理を繰り返さなければならないとき、繰返し(iteration)を使います。
while ( <繰返し条件> ) <文>
> var shincho = 150 ; while ( shincho < 180 ) { std( shincho ) ; shincho = shincho + 5 ; }
変数 shincho が「180 より小さい」間、{ と } で囲まれた部分(ブロック)を繰り返し実行します。
ブロックの最後に shincho = shincho + 5; があるので、繰り返すごとに 5 ずつ増えていきます。
もし最後の shincho = shincho + 5; を書き忘れたら?
shincho はずっと 150 のままなので、条件 shincho < 180 が永遠に成り立ち、
プログラムは止まらなくなります(無限ループ)。
上のコンソールで試してみてもかまいません ── 一定回数を超えると自動で止めるようにしてあります。