SSブログ

【AP】繰返し(repeat文) [AppleScript辞書はつくれるか?]

(* ● 繰返し文 ● *)

 

(* 1-1:永久ループ *)

repeat

(* 繰返したい命令文 *)

end repeat

(* このままでは"強制終了"するまで永遠に繰返し続ます *)

 


(* 1-2:出口付き永久ループ *)

repeat

(* 繰返したい命令文 *)

if |条件then exit repeat

end repeat

(* |条件|がtrue(正)のときに"exit repeat"で繰返しから出る事ができる *)

 

 

(* 2-1:回数指定型繰返し文 *)

repeat |繰返し数(整数)times

(* 繰返したい命令文 *)

end repeat

(* 指定した|繰返し数(整数)|分を1づつ増やしながら繰返します。 *)

 

 

(* 2-2:開始から終了まで指定型繰返し文1 *)

repeat with |代入値from |開始値to |終了値|

(* 繰返したい命令文 *)

end repeat

(* |開始値|から|終了値|を超えない値までを1づつ増やしながら結果を|代入値|に入れ繰返します。 *)

 

 

(* 2-3:開始から終了まで指定型繰返し文2 *)

repeat with |代入値from |開始値to |終了値by |加算値|

(* 繰返したい命令文 *)

end repeat

(* |開始値|から|終了値|を超えない値までを|加算値|づつ増やしながら繰返します。 *)

 

 

(* 3-1:判定型繰返し文(正) *)

repeat while |条件|

(* 繰返したい命令文 *)

end repeat

(* |条件|が 『正しければ』 繰返します *)

 

 

(* 3-2:判定型繰返し文(偽) *)

repeat until |条件|

(* 繰返したい命令文 *)

end repeat

(* |条件|が 『合わなければ』 繰返します *)

 

 

(* 4:リスト参照型繰返し文 *)

repeat with |代入値in |リスト|

(* 繰返したい命令文 *)

end repeat

(* |リスト|から1つづつ|代入値|に入れながら繰返します。 *)



 

 

○1-1:永久ループ 

図1-1永久ループ.png

【図1-1】

実行をしても出口が無いので次に進まず 結果が表示されません。

図1-1-2.png

エディター上でならば中止ボタンで停止しますが、アプリケーションにして実行すると 強制終了又はエラーを起こすまで繰返し続けます。OS Xならばまだ良いのですが OS9以前だとシステムへの影響を覚悟の上、強制終了させなければなりません。ですので、1-2のような逃げ道を用意する必要があります。

 

○1-2:出口付き永久ループ

図1-2出口付き永久ループ.png

repeat文の中に exit repeat を組み入れ永久ループから抜けできるようにしましたので結果が出てきました。

このように永久ループに陥らないように配慮しなければなりません。

 

 

 

 

○2-1:回数指定型繰返し文

2-1回数指定型繰返し文.png

 

timesと記述がありますが、時間ではなく、なぜか回数です。

指定する|繰返し数(整数)| は必ず整数でなくてはいけません。

繰返している現在の状況(何回目)を必要としない時に使うタイプです

 

 

○(* 2-2:開始から終了まで指定型繰返し文1 *)

repeat with |代入値| from |開始値| to |終了値|

○(* 2-3:開始から終了まで指定型繰返し文2 *)

repeat with |代入値| from |開始値| to |終了値| by |加算値|

 

|開始値| から |終了値| まで |加算値| づつ増やしながら繰返します。現在の値は |代入値| に記録されます。

開始から終了まで指定型繰返し文.png

|加算値| が 1 の場合は、" by |加算値| " の部分は省略できる。

ここでの |加算値| は整数値・小数値(実数)どちらでも使える。

|終了値| を超えた場合は、中身を実行せずrepeat命令は終了し次の命令へと移ります。

|加算値| にマイナス(0より小さい数)の設定をすると数の減算の繰返しが可能です。

開始から終了まで指定型繰返し文(-).png


 

○(* 3-1:判定型繰返し文(正)  *)

判定型繰返し文(正).png

条件 (a < 10) を満たす間は繰返しますので 変数aが 1から9までは繰返しが実行されています。
(a < 10) は 10未満(10は含まない)の条件式ですので、10になると実行されずrepeat文が終了されています。


○(* 3-2:判定型繰返し文(偽) *)
判定型繰返し文(偽).png
条件 (a > 10) を満たさない間は繰返しますので 変数aが 1から10までは繰返しが実行されています。
(a > 10) は 10を超える(10は含まない)の条件式ですので、10までは実行され、10をこえると実行されず
repeat文が終了されています。


○(* 4:リスト参照型繰返し文 *)

repeat with |代入値in |リスト|

(* 繰返したい命令文 *)

end repeat

 

リスト又はレコードからアイテムを1つづつ抜き出し、そのアイテムの数だけ繰返します。

リスト参照型繰返し文.png
上の例では、起動ディスクの内容をレコードとして読み出し、そのファイル名をリスト化しています。

この記事内では紹介されていないような見慣れない命令が有りますので、流れを含めてちょっとだけ
触れます。
1行目はコメントですので実行時されない部分です。
2行目の tell application "Finder" はMacのファイルを扱う"Finder"というアプリケーションを呼び出
しています。
3行目のstartup disk とは起動ディスクの意味です。items of startup disk で起動ディスクの中身の
情報をレコード化しています

4行目repeat with obj in Object_List で前の行でレコード化したものを一つ一つ obj に呼び出し繰返

します。

5行目name of obj で呼び出したファイルの名前を取得しています。

あとはend repeatで繰返し部分のおわり、まだ繰返すアイテムが有ればrepeatの業に戻ります。

end tellで、呼び出した"Finder"を使用するのはここまでと教えています。開いたら(呼び出したら)閉じるは必ず一体です。


以下、編集中

nice!(0)  コメント(0) 
共通テーマ:パソコン・インターネット

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。