GASのdo while文の使い方!whileとの違いである後置判定ループ処理を解説
Google Apps Script(GAS)における繰り返し処理のひとつにdo while文があります。
do while文はwhileループと似た処理の流れですが、条件判定ポイントが異なっており、利用シーンが微妙に異なります。
そこでwhileループとの違いを含め、do whileループの使い方などを解説します。
GASでよく使う繰り返し処理「while文」
前回の記事ではGoogle Apps Script(GAS)のスクリプトでよく使う繰り返し処理として、while文を紹介しました。
GASではfor文に次いでよく使われるループ処理です。
条件式を満たしている間、while文の中括弧内に書かれた処理を繰り返し実行します。
while文と似たループ処理「do while文」
そんなwhile文と似たループ処理として「do while文」がGoogle Apps Script(GAS)で利用可能です。
do while文もC言語やJavaなど主要なプログラミング言語では必ず実装されています。
while文に比べて利用頻度は少ないですが、do while文のほうが適している繰り返し処理もあります。
そのため、do whileループも理解すると、処理フローに応じてwhileループと使い分けができるようになります。
do whileループの記述方法
Google Apps Script(GAS)のスクリプトにおけるdo whileループの書き方を解説します。
do{
//処理を実行
}while(条件式);
//条件式がtrueなら繰り返し処理実行、falseならdo whileループ終了
do while文は以下の形で繰り返し処理→条件判定の流れで記述します。
- doの中括弧{}内に記述された処理を実行する
- doループ終了時に設置されたwhileの条件式がtrueになる場合、1に戻る
- whileの条件式がfalseだった場合、do while文が終了
do whileループではまず条件判定よりも先にdoループの中括弧内の処理が実行されます。
doループ処理が終わった後、while括弧内の条件式による条件判定を行い、条件を満たす(true)場合は処理を繰り返し、満たさなくなった(false)場合は処理を終了します。
do while文のGASサンプルコード
実際にwhile文を使ったGoogle Apps Script(GAS)の繰り返し処理のサンプルコードを紹介します。
function myFunction() {
//do whileループの条件式で使う変数を定義
let num = 0;
//numが100未満の時はループ処理を実行
do{
//numの値をログ出力
console.log(num);
//numをインクリメント
num++;
}while(num<100);
}
最初に数値型の変数に0をセットし、do while文で100未満の間はループ処理を繰り返すGASサンプルコードです。
doの後に中括弧からループ処理が開始され、console.logで変数の数字を出力します。
くり返し処理の最後に変数をインクリメントしており、while括弧内の条件式の判定を行い、インクリメントを繰り返して100になるとwhileループを抜け出します。
上記のdo whileループのGASサンプルコードを実行すると、実行ログに0から99までの数値が出力されます。
while文とdo while文の違いは?
Google Apps Script(GAS)も含め、プログラミングを学ぶ初学者にとって、while文とdo while文の違いは何か?という疑問をいだきます。
whileループとdo whileループの違いは一言で表すと、「繰り返し処理と条件判定の順番が逆」です。
while文とdo while文のフローチャートを並べてみます。
while文は「条件判定→繰り返し処理」なのに対し、do while文は「繰り返し処理→条件判定」です。
while文は最初に条件判定が行われるため、初回であっても条件式がfalseなら繰り返し処理が実行されません。
一方、do while文は処理が先に行われた後に、条件判定が行われるため、必ず1回は繰り返し処理が実行されます。
この処理と条件判定の順番の逆なのがwhile文とdo while文の大きな違いのポイントです。
do while文は後置判定
前述でwhile文とdo while文のフローチャート図を比較した通り、while文はループ処理が開始されるタイミングで条件判定を行うため、「前置判定」と呼ばれます。
それに対し、do while文はループ処理の最後で条件判定を行う「後置判定」です。
前置判定と後置判定という条件判定が行われるのが処理の前か、処理の後かによってwhile文とdo while文に違いが生じています。
ループ処理を少なくとも1回実行したい場合はdo while文、条件を満たさない場合は実行しなくてもよい場合はwhile文という使い分けです。
まとめ・終わりに
今回、Google Apps Script(GAS)の繰り返し処理の1つであるsdo whileループを紹介しました。
for文やwhile文に比べると、do while文をGASで利用する頻度は少ないです。
do while文はまず繰り返し処理が実行され、その後whileの条件式による条件判定を行い、trueなら再度繰り返し処理、falseならループを終了します。
前置判定のwhileループとは条件判定と処理の順番が異なる「後置判定」なのがdo whileループです。
少なくとも1回はループを実行したい場合にはwhileループよりもdo whileループのほうが適しているケースもあるので、うまく使い分けましょう。
do while文も含めたGASで使える繰り返しループについて以下のの記事でまとめています。
ディスカッション
コメント一覧
まだ、コメントがありません