この連載では僕が所属しているノンプロ研で受講した、GAS初級講座での気づきをまとめています。前回の記事はこちらです。
前回は第1回「はじめてのGAS、変数、演算、データ型」について学びました。プログラミングでは、色々な種類(データ型)の値を、命令にしたがって処理(演算)します。値を箱(変数・定数)に入れることで便利になります。
実際に講座に参加して学んでみると、本やWebで集めた情報とは違って理解のレベルが深くなりますね。独学とはまったく違います。
今回は第2回「制御構文」について取り組みます。ほかの言語との違いは何なんでしょうか?
プログラム処理
GASに限らずプログラム処理は、以下の3種に分類されます。
順次
指定した手順にしたがって処理を進めていきます。プログラム処理の基本です。選択
条件および、条件が成立した場合の処理、成立しなかった場合の処理を設定して、条件によって実行する処理を選択します。3つ以上の条件を指定する場合もあります。反復
指定した処理を繰り返します。繰り返される処理内容は、処理時点での状態によって異なります。
前回まで取り組んできた内容は、「順次」になります。そして今回は「選択」、「反復」に取り組んでいきたいと思います。
選択
条件式
選択では条件によって処理を切り替えるのですが、条件を表す式を条件式といいます。条件式の結果は真偽型(true/false)の値を返します。また、後述するif文で値を条件式に指定すると、暗黙的に真偽値に変換されます。
比較演算子
他の言語でもそうなのですが、条件式には比較演算子を用いられることが多いです。比較演算子で特筆する点は、2つの値が等しい/等しくないを判定するケースです。2通りの方法があります。
厳密等価演算子(===/!==)
右辺と左辺の値とデータ型が等価であるかどうかを判定します。「=」を3つ繋げて記述します(等価でないかを判定する場合には「!」と「=」を2つ)。等価演算子(==/!=)
右辺と左辺のが等価であるかどうかを判定します。「=」を2つ繋げて記述します(等価でないかを判定する場合には「!」と「=」を1つ)。
実際の運用では厳密等価演算子を使用することが多いようです。その他の仕様はC言語と一緒の様です。
論理演算子
複数の条件式を指定する場合は、論理演算子(「&&」、「||」、「!」)を使用します。
条件式1 && 条件式2
などと記述します。これはC言語と一緒の様ですので詳細は割愛します。
実際の条件分岐
実際に条件を指定して選択をする場合、if文やswitch文を使用します。 if文の記述方式は以下になります。
if (条件式) { // 処理1 } else { // 処理2 }
複数の条件式を指定する場合はswitch文が便利です。switch文の記述方式は以下になります。
switch (式) { case 値1: // 処理1 break; case 値2: // 処理2 break; ・・・ default: //処理default }
式の結果と等しい値のcase句に記述してある処理を実行します。処理の最後にbreak句を記述しないと、後にづく処理も実行されてしまうので注意しましょう。また、結果と等しい値がない場合はdefault句に記述してある処理を実行します。
条件分岐の仕様はC言語と一緒の様ですので詳細は割愛します。
反復
反復処理ではfor文やwhile文を使用します。 for文の記述方式は以下になります。
for(初期化式; 条件式; 増減式){ // 処理 }
while文の記述方式は以下になります。
while (条件式){ // 処理 }
反復処理の途中で抜けたい場合は、どちらもbreak句を記述します。 反復もC言語と一緒の様ですので詳細は割愛します。
入れ子構造
これもほかの言語と同じなのですが、選択、反復の処理はネスト(入れ子)構造で使用する場面が多々あります。上に述べたbreak句による反復処理を条件指定で抜けたいときや、2次元のデータ処理等です。
次回は関数・配列
いかがでしょうか。概ねC言語と同じようで、JavaScript(GAS)がC言語の影響を受けているということが如実に分かりました。また、違う点については良く把握しておく必要があるようです。なぜ違うのか、後々考察できるといいと思っています。 次回は関数・配列です。お楽しみに!!