GASでプログラミング入門 Vol.3

# GASでプログラミング入門 Vol.3

社内サークルにてエンジニアから非エンジニアの方向けにプログラミングを教えるという活動を行っています。<br>
今回はその教材第3弾です。
前回の記事は[こちら](https://qiita.com/YoshinagaYuta/items/83f1709bee0a5ef10626)

## 前回の演習問題の解答例
(1). for文を使用して下記のように実行されるプログラムを記述してください

```
ループ処理1回目
ループ処理2回目
ループ処理3回目
ループ処理4回目
ループ処理5回目
```

解答例コード

```js
for(let i = 1; i <= 5; i++){
    console.log("ループ処理" + i + "回目");
}
```

ポイントとしては、ループ処理を行う回数の条件式`i <= 5`の部分ですね。
今回は5回処理を繰り返したかったので、変数iの値がいくつになるまで繰り返す必要があるのか？についてコードを書く前にきちんと整理しておく必要があります。

(2). 変数strを作成し、"条件式1"という文字列で初期化し、下記のような出力になるプログラムを作成してください。

```
条件式1の処理を実行
```

また、変数strの値を"条件式2"に変更した場合は下記のようになるようにしてください。

```
条件式2の処理を実行
```

解答例コード

```js
let str = "条件式1";
if (str == "条件式1") {
    console.log("条件式1の処理を実行");
} else if(str == "条件式2") {
    console.log("条件式2の処理を実行");
}
```

ポイントとしては、変数strの値に応じて、二つのルートにプログラムを分岐させる必要があるという点ですね。
上記解答例では何度実行しても条件式1の処理を実行と表示されますが、演習問題の仕様ではstrの値を条件式2に変更した場合についても考慮しておく必要が示されていますので、上記解答例のstrの値を書き換えて実行もして、確認するようにしておきましょう。
実務では条件式に用いられる変数の値はプログラム内にベタ書きされることはなく、外部からの入力などで受け取ることが多いので、プログラムの動作試験では取りうる可能性のある値の検証は全て行っておくなどします。

なお解答例はあくまで例なので、必ずしも上記のようになっていないといけないわけではありません。

## 算術演算子について

JavaScriptに限らずの話ですが、プログラミング言語には演算子というものがあります。
まずは算術演算子というものに関して、紹介します。
算術演算子を使用することで、様々な計算をプログラムで行うことが可能です。

### 加算

```js
console.log(1 + 1);
```

実行結果

```
2
```

### 減算

```js
console.log(10 - 1);
```

実行結果

```
9
```

### 乗算

```js
console.log(10 * 10);
```

実行結果

```
100
```

### 除算

```js
console.log(20 / 10);
```

実行結果

```
2
```

### 除算の余り（剰余）

```js
console.log(10 % 3);
```

実行結果

```
1
```

### べき乗(2のn乗など)

```js
console.log(2 ** 3);
```

実行結果

```
8
```

## ++について(インクリメント演算子)

前回のfor文の箇所で出てきた`++`について紹介します。
`++`はインクリメント演算子と呼ばれるもので、簡単に言えば、算術演算子を短い表記で表現することが可能な演算子です。
まず前回のfor文の`i++`ですが、算術演算子を用いると下記の式と同じになります。

```js
i = i + 1;
```

変数iに+1した結果を変数iに格納しています。
インクリメント演算子を用いると、上記の式に比べ簡潔に変数の値を+1するということが表現できていますので、このような場合には通常インクリメント演算子を使用することが一般的です。
なお、インクリメント演算子と似た演算子としてデクリメント演算子というものも存在します。
デクリメント演算子は`i--`のように記述し、下記の式と同じになります。

```js
i = i - 1;
```

また、インクリメント、デクリメント演算子には前置型、後置型の2種類があり、ここで紹介したものは後置型になります。
ひとまず入門編の状態では後置型の表記方法を覚えておけば良いかと思います。
どうしても気になる方は「インクリメント演算子 前置 後置」などのキーワードで検索すると解説しているサイトが沢山見つかりますので、参照してみてください。

## 関係演算子について

続いて関係演算子について紹介します。
関係演算子とは左辺と右辺の値が大きい、小さいなどの関係を評価する演算子です。
前回の講義のfor文の箇所で出てきた`i <= 5`の部分になります。

### 小なり演算子

```js
let num = 1;
if ( num < 2 ) {
    console.log("numは2より小さいです");
} else {
    console.log("numは2より小さくないです");
}
```

実行結果

```
numは2より小さいです
```

numの値を2に変更した場合の実行結果

```
numは2より小さくないです
```

### 大なり演算子

```js
let num = 3;
if ( num > 2 ) {
    console.log("numは2より大きいです");
} else {
    console.log("numは2より大きくないです");
}
```

実行結果

```
numは2より大きいです
```

numの値を2に変更した場合の実行結果

```
numは2より大きくないです
```

### 小なりイコール

```js
let num = 2;
if ( num <= 2 ) {
    console.log("numは2以下です");
} else {
    console.log("numは2以下ではないです");
}
```

実行結果

```
numは2以下です
```

numの値を3に変更した場合の実行結果

```
numは2以下ではないです
```

### 大なりイコール

```js
let num = 2;
if ( num >= 2 ) {
    console.log("numは2以上です");
} else {
    console.log("numは2以上ではないです");
}
```

実行結果

```
numは2以上です
```

numの値を1に変更した場合の実行結果

```
numは2以上ではないです
```

## 等価演算子について

```js
let num = 2;
if ( num == 2 ) {
    console.log("numは2です");
} else {
    console.log("numは2ではないです");
}
```

実行結果

```
numは2です
```

numの値を1に変更した場合の実行結果

```
numは2ではないです
```

## 不等価演算子について

```js
let num = 1;
if ( num != 2 ) {
    console.log("numは2ではないです");
} else {
    console.log("numは2です");    
}
```

実行結果

```
numは2ではないです
```

numの値を2に変更した場合の実行結果

```
numは2です
```

## 演習問題

(1). for文を使用して下記のように実行されるプログラムを記述してください

```
ループ処理5回目
ループ処理4回目
ループ処理3回目
ループ処理2回目
ループ処理1回目
```

(2). 数値を格納する変数numを宣言して、値を任意の数値で初期化します。
数値の値が4の倍数なら下記のように表示するプログラムを記述してください。

```
numは4の倍数です。
```

また、4の倍数ではなかった場合は下記のように表示してください。

```
numは4の倍数ではありません。
```

## まとめ

いかがでしたでしょうか。
今回は主に演算子について解説していきました。
前回学んだ内容の「逐次」、「反復」、「分岐」と組みわせることで様々な処理を行うことができるので、演算子の種類、記述方法などについて、しっかりと理解しておくことが重要になります。
それではまた次の記事でお会いしましょう。