投稿者「Shunsuke Yoshikawa」のアーカイブ

6.2. whileでループしてみよう

6.2.1. while文の基本

前回はforを使ったループについて書いてみました。

forでは、初期値を設定して、「最後の値」までの回数を繰り返すという方式でループしていました。
今回はTera Termマクロにおけるもう一つのメジャーなループである、whileを使ってみます。

 

6.2.1.1. whileの説明

whileでは、whileで指定した値が0以外である場合に、endwhileとの間でループを繰り返すというコマンドです。

whileを使っても、forと同様なループを書くことができます。
whileの場合は、ループをさせる場合の行数が長くなってしまいますが、文法がシンプルである分、書きやすいと感じるかもしれません。

 

6.2.1.2. whileの書き方

whileのコマンドは以下のような構文で記述します。

 

このコマンドでは、「値」が0以外の場合に、endwhileとの間に書かれた「何かのコマンド」を繰り返し続けるということになります。

 

 

6.2.2. while文のサンプル

それでは、forの時と同じように、10回空Enterを繰り返すマクロをサンプルで書いてみましょう。

 

6.2.2.1. whileで空Enterを10回繰り返す

whileコマンドでは、構文の中に初期値を設定する場所がありませんので、while文の前に値を変数宣言しておく必要があります。

 

このマクロでは、iの値が0になるまでループが繰り返され、0になれば、マクロが終了するということになります。

 

6.2.2.2. whileとforの違い

whileコマンドとforコマンドで同様のループを作れるのだとすれば、その二つの使い道に悩んでしまいそうなところです。
結論としては、使いやすい方を使うという形でいいと思います。

ただ、whileの場合は、意図的にストップするまでループするというマクロを作るのが非常に簡単です。
実際の現場では、コンソールログを表示させるような目的で、定期的に空Enterを叩くようなマクロがあると非常に便利です。

以下が永遠に空Enterを叩き続けるマクロのサンプルです。

 

この4行を書くだけで、Tera Term上では10秒に一回定期的に空Enterを送信し続けてくれます。

forは原則として有限の値に対してループするため、永遠の空Enterマクロを作る事は出来ません。

 

 

6.2.3. まとめ

 

whileコマンドを使ってもforコマンドと同様にループを作ることができます。

whileコマンドは値が0以外の時にループを行う為、回数を指定したループを作るのはforコマンドより手間がかかります。

反面、無限にループするようなマクロは簡単に作ることができます。

 

次章では分岐処理について書いてみたいと思います。