「ノンプログラマーのためのスキルアップ研究会」通称ノンプロ研主催のAPIプログラミング講座【freee APIコース】の受講と並行して、同時多発開催されているノンプロ研講座の「GAS×freee APIコース」のTA(ティーチングアシスタント)を務めております。
この講座は
GAS初心者講座 全6回
freee APIコース 全4回
のコンバインド講座です。
かくいう私もノンプロ研で受けた最初の講座がGAS初心者講座でした。この最初のプログラミング学習をきっかけに実務でも使えるツールを自分で作れるようになり、お仕事でばりばり活用できています。
本日はノンプロ研 GAS初級 + freeeAPI講座第2期の第2回、制御構文です。#ノンプロ研 #GAS_freeeAPI講座 pic.twitter.com/ACF6VhRUdO
— 山口征啓@AI_QUEST2021 (@ID_HelpDesk) September 24, 2021
2日目は条件分岐と繰り返し
2日目の講座のテーマは条件分岐と繰り返しです。前回は条件分岐の復習で力尽きてしまいましたので、今回は繰り返し処理に関して復習します。
繰り返し処理はプログラミングの真骨頂ですね。手作業だと面倒な繰り返し作業をもくもくと進めてくれる頼もしい存在です。
for文による繰り返し
for文による繰り返しの基本は、カウント用変数を使って決まった回数の繰り返しを行う処理です。
この処理を100回繰り返すとか具体的な回数の条件を指定することもできますが、別の値を超えるまで…とか定数で示された上限回数まで…みたいな様々な条件を指定できます。
あとカウント用変数が増えていくパターンと減っていくパターンでも条件指定ができるのがポイントです。
function myFunction2_09() {
for(let i = 1; i <= 10; i++) {
console.log(i);
}
}
こちらは講座の演習の例ですが初期値が1のiを10を超えない数値までi++(インクリメント演算子)で1づつ増やしています。
この for(let i = ...)
の繰り返しですが、GASに慣れてきて簡単なスクリプトを自分でつくるようになってくると、だんだんと使わなくなりました。多くのケースで次回で学ぶfor… of文で事足りるし、シンプルなので。ただAPIのデータを操作するときに便利な瞬間があるので、覚えておきたい存在ではあります。
while文による繰り返し
続いてwhile文での繰り返し。実はこのwhile文も私は最近あまり使わなくなっています。それでもAPIのデータ操作の時にwhile文の無限ループを使って処理を分岐したということがあったので、存在を忘れてはいけません。
function sample01() {
const text = '無限ループ中';
while (ture) {
console.log(text);
}
}
上記のサンプルコードは無限ループの例なのですが、
while (条件式){
// 処理
}
の条件式の部分にtrueというBoolean値を入れているので、基本的に永遠にループし続けるんですよね。こんなの何に使うのと思っていたのですが、この無限ループのなかで条件分岐して、処理を分けたり、ループ停止(break)させたりしていました。
繰り返しのネスト
続いては繰り返しのネスト。nest(ネスト)とは鳥・動物・昆虫などの巣や入れ子構造のことで、とある処理の中にさらに別の処理を入れ込むことを言います。マトリョーシカみたいなイメージですね。
講座では、このネストを深くしすぎると後からコードを見直した時に何がなんだかわからなくなるので、ネストは深くて3つまで!と教わります。ネストが3つ以上になったら関数化できないかを考えると良いですね。
まとめ
カウント変数を使ったfor文もwhile文もあまり使わないと書いたものの、存在を知っておいて後から調べなおせるのは重要だと感じています。と同時に複雑だと思っていたプログラミングの世界ですが、その基本的な部品は意外とシンプルなものの組み合わせでできていて、パズル感覚で組み立てて新しいツールが作れるので、学習のコストパフォーマンスは良いなと思っています。