2005年10月27日

条件分岐とループ処理

さて、今回は余談なしでいきなり行きますよ。

まずは、「条件分岐」 です。
使うことは非常に多いです。ぜひ、覚えちゃいましょう。


もし、○○ ならば、☆☆ を実行、違うなら、△△ を実行

というように、○○ の条件に当てはまるかどうかで
違う処理をしたい場合に利用します。

基本的には、

if ○○ ☆☆ else △△

でいいのですが、help if を実行したヘルプにも出てますが
中にはこの構文では失敗してしまうものもあります。

ですから、私は、無条件で括弧で括るようにしています。

if ○○ (☆☆) else (△△)

としています。また、括弧を使った場合、便利なのは
複数のコマンドが実行できることです。

私が覚えたばかりのとき、コレを知らずに、
数行のバッチファイルを作成し、それを呼び出すことで
対応していました。バッチファイルが大量に出来てしまって
結構、修正が大変でした ^^;

「+Lhaca でサブホルダ毎に一括圧縮」 のソース では、
4回使用していますね。参考にして下さい。

最初は、引数がホルダかどうかの判定の際の for 文の中、
引数の親ホルダ (%1¥..) の中のサブホルダをピックアップし、
「それと引数の名前部分が一致したら」 IS_DIRECTORY に
そのときのホルダ名を代入し直しています。
for 文については、次回に詳しくやりますね。

次は、「IS_DIRECTORY の値が元のままだったら」
実際の圧縮処理部分をスキップしています。

その次は、「サブホルダ一覧用の一時ファイルが存在したら」
そのファイルを削除しています。

最後は、前回にも説明してますが、「引数が空になったら」
end ラベルに飛んでいます。


自動で処理を行おうとした場合、その時点での値を調べて、
それに応じた処理を行う必要があります。場合によっては、
if 文の中に、更に if 文を書く必要も出てきます。

自動処理には欠かすことの出来ない、非常に重要な命令
である事を肝に銘じておいてください。


それでは、今度は 「ループ処理」 についてですが、
引数の処理のところで、shift コマンドを使うと便利だという
話をしたと思います。何故なのかは、たぶん想像どおりですが、
全く同じ処理を繰り返せばいいからです。
書き込む量が少なくなりますので、ミスを減らすことも出来ます。

では、このループの作成の仕方を詳しく説明致します。


えッ? 「goto 文で手前のラベルに飛ぶんだろう」 って?


そっ、その通りです。
行の先頭に : を付加すると、ラベルを定義できます。

いや〜、このループは単純でしたね。
でも、注意しないといけないのは、必ずループの出口を
作ってあげないといけないことです。この場合には
「引数が空になったら」 end ラベル という命令で
ループ外に脱出しています。

もし、出口がなければ、永遠にそのループを回り続けます。
そのような状況になってしまったら、Break キー を押すか、
Ctrl+C キー で処理を中止させてくださいね。


実を言うと、for 文もループ処理なのですが、
少々高度で複雑なので、次回に廻すことにしました。


あ〜ッ! タイトルの 『手抜き』 ってこのことだな〜!!


ちッ、違います・・・ ^^;

応援ポチ  お願いしま〜す。

posted by Woody at 01:48 | 静岡 ☁ | Comment(0) | TrackBack(0) | コマンドプロンプト
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

この記事へのトラックバック
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。