GASのwhile文の使い方解説!条件式がtrueの間くり返し処理し、無限ループに注意
Google Apps Script(GAS)の繰り返し処理を実装するのに使われるwhile文があります。
while文による繰り返し処理のスクリプト記述方法と無限ループなどの注意点を解説します。
プログラミングは繰り返し処理が基本
プログラミングは大きく3つの特徴があると言われています。
- 逐次処理
- 条件分岐
- 繰り返し
その中でも、人間よりもプログラムが優れているのが繰り返し処理です。
人間が操作すると途方もない時間がかかる処理を、繰り返し実行することで短時間で実行することができます。
そうした点で条件分岐に加え、繰り返し処理がGoogle Apps Script(GAS)のコードでも基本となります。
GASの繰り返し処理の1つにwhileループ
Google Apps Script(GAS)にも他のプログラミング言語と同様に繰り返し処理のためのループ文が用意されています。
そうしたGASで利用できるループの1つがwhile文です。
while文は繰り返し処理の基本のループで、プログラミング入門書などにも必ず記述されています。
ループ処理で最も利用頻度が多いfor文とともにwhile文は覚えておくべきループです。
while文の文法と記述方法
Google Apps Script(GAS)のスクリプトにおけるwhileループの書き方を解説します。
while文は以下の形で繰り返し条件と繰り返し処理を記述します。
while(条件式){
//条件式がtrueの場合、処理を実行
}
//条件式がfalseになった時、whileループ終了
- whileの()括弧内に記述した条件式が満たしている(true)か、満たしていない(false)か判定
- 条件式がtrueになる場合、中括弧{}内に記述された処理を実行し、1に戻る
- 条件式がfalseだった場合、中括弧内の処理はスキップされ、while文が終了
whileループの処理をフローチャート図で表すと以下の図のようになります。
while文の条件式の判定が初回でもfalseだった場合はwhile内の処理は1回も実行されません。
whileという英単語は接続詞として「~の間、」という意味があり、それがベースとなって、条件を満たしている間、処理が繰り返されるループになっています。
whileループは「条件式がtrueの間、処理がくり返しになる」と覚えておきましょう。
while文を使ったGASサンプルコード
実際にwhile文を使ったGoogle Apps Script(GAS)の繰り返し処理のサンプルコードを紹介します。
function myFunction() {
//whileループの条件式で使う変数を定義
let num = 0;
//numが100未満の時はループ処理を実行
while(num < 100){
//numの値をログ出力
console.log(num);
//numをインクリメント
//num++;
}
}
最初に数値型の変数に0をセットし、while文で100未満の間はループ処理を繰り返すGASサンプルコードです。
whileループ内のくり返し処理の最後に変数をインクリメントしており、インクリメントを繰り返して100になるとwhileループを抜け出します。
実際に、whileループのGASサンプルコードを実行すると、実行ログに0から99までの数値が出力されます。
インクリメントの結果、100になるとwhile文の条件式を満たさずfalseになるので、ループ処理が終了します。
whileループを途中で抜けるにはbreak
while文の処理の途中でループから抜けるにはどうすればよいでしょうか。
Google Apps Script(GAS)ではbreakコマンドで抜けることができます。
whileループは基本的に条件式がtrueの時に処理を繰り返して、falseになると繰り返し処理を終了します。
基本的にwhileループの途中で抜けるGASスクリプトは珍しいですが、条件式とは異なる例外が存在する場合は、if文などでbreakを実行して、繰り返し処理を中断可能です。
whileは無限ループに注意
while文を使った繰り返し処理で最も気をつけたいのが「無限ループ」です。
Google Apps Script(GAS)のwhile文での無限ループは条件式がfalseにならず、処理が無限に繰り返されることを言います。
GASは実行時間が6分という上限が設けられているため、6分経過するか、スクリプト実行を中断しないと止まりません。
GASに慣れてくると無限ループにおちいることは少なくなりますが、最初のうちは条件式の更新ができておらず、無限ループが発生することがあります。
事前にGASスクリプトをテスト実行したり、コードレビューで条件式がfalseになるかチェックすることが大切です。
まとめ・終わりに
今回、Google Apps Script(GAS)の繰り返し処理の1つであるwhileループを紹介しました。
whileループはGASの入門書などでも必ず習う、forループとともに覚えておくべき繰り返し処理です。
while文の最初に記述した条件式がtrueまたはfalseか判定し、trueなら中括弧{}内の処理を実行し、再度条件式の判定を行い、falseになったところでループが終了します。
whileループはGASスクリプトの不備によっては条件式がいつまでもfalseのままでtrueにならずに無限ループに陥る恐れがあるので注意が必要です。
whileループを使えば、たくさんあるデータをくり返し実行して処理できるので、GASを使いこなすためにもマスターしましょう。
while文も含めたGASで使える繰り返しループについて以下のの記事でまとめています。
ディスカッション
コメント一覧
まだ、コメントがありません