AX

電霊ログ

私のやってるサイト、電子の言霊の活動ログ

カテゴリークラウド

タグリスト

最近のトラックバック

月別アーカイブ(タブ)

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
  • [HSP超入門] 繰り返し7

今まで繰り返しをする時は必ず
repeat 10
の様にループ回数を指定していました、
それはコンピューター君に何回繰り返したらいいかを教えるためです。

では
repeat
のように回数を指定しない時は どうなるでしょうか?
実は、回数を指定しないと repeat から loop の間を「永遠」に繰り返し続けるのです。怖いですね~。
(一般的に 意図せずに永遠に回り続ける繰り返しの事を 無限ループと言います。)

それではさっそく 回数指定の無いループ を作って見たい所ですが、HSPではこれをする際に1つ 注意しておかなければいけない事があります。
それは必ず wait 命令で、待ち時間を入れる事です。
wait は指定した時間だけプログラムを止める命令ですが、永遠に止まらないループの場合は必ずこれを入れなければいけません。
でもなんでそんな面倒くさい事をわざわざしなければいけないのか疑問に思うはずです。

HSPプログラムを書いて実行すれば、勝手にタイトルバーやウィンドウを閉じる×ボタンなどが表示され、タイトルバーをドラッグすればウィンドウの移動が、×ボタンを押せばプログラムの終了が行われます。しかもこれまた勝手に。
これはHSPがウィンドウズの機能を使って自動でやってくれている事です。

それでもいくら自動でやってくれているとは言え いつかどこかでその作業をしている事は間違いありません、そして wait を入れる理由を説明をするのに大切なのはその「いつか」の所です。
いつその作業をしているのかと言うと、それはHSPプログラムが実行されていない時なのです。

今まで作ってきたプログラムはどれも、すぐにプログラムが終わるものばかりで それを意識する必要もありませんでしたが、回数指定の無いループでは 永遠にプログラムを実行し続けるので、ウィンドウズの機能が働くすきが無くなってしまいます。
そうなるとドラッグによる移動はもちろん、実行しているHSPのプログラムにくっ付いている、ウィンドウズの機能全てが機能しなくなり、プログラムを終了する事すら出来なくなります。(強制終了は出来ます)

そんな恐ろしい思いをしないために ループ中にワザとプログラムを待機させる命令を入れ、ウィンドウズに仕事をさせる時間を与えてあげる事で無限ループになるのを回避させてあげます。

そのためには まず、
wait 命令
を覚えましょう。

wait 命令は指定した時間だけ プログラムを停止させる命令です、stop 命令に制限時間が付いた様な物だと考えると分かりやすいでしょう。

使い方は、
wait 100
の様に100分の1秒で待ち時間を指定します。
100分の一秒は 1秒を100個に分けた内の1つなので、上の様に100を指定する事で1秒待ちます。
「wait の例」

mes "ここは・・・"
wait 150
mes "いったい・・・・"
wait 240
mes "わたしは・・・"
wait 320
mes "だれ・・・・"



おまたせしました、それではお待ちかねの止まらないループを作ってみましょう。
これはプログラムを終了させるまで(×を押すまで)命令を実行し続けます
「終わらないループの例1」

repeat

mes "ループ中・・・"

wait 100

loop



ループから抜け出さない以外は今までと変わらないので、大した感動は無いかも知れません。高速にプログラムを実行させたい時は、wait の数値を少なくして見て下さい。遅くしたい時は逆に大きく。

しかしどれだけ気を付けてプログラミングしていても、気付かずにうっかり無限ループを作ってしまう事があります。もしそうなってしまったら、強制終了しかありません。
ここではXPで プログラムの強制終了をするやり方を簡単に説明したいと思います。そのためにはまず、「タスク マネージャー」を呼び出しますが やり方は2通りあります。

・1つ目のやり方。
  マウスで タスクバー(画面一番下のスタートボタンがあるバー全体の事)のボタンも何も無い所を右クリックして、「タスク マネージャー」をクリック。

・2つ目のやり方。
  キーボードの Ctrl と Alt を押しながら Delete キーを押す。

タスクマネージャーを開いたら、その中から「アプリケーション」タブをクリックしてください。
すると現在実行中のウィンドウを持つプログラム一覧が表示されます、その中から強制終了したい項目を選んで「タスクの終了」ボタンを押せば、これで固まったプログラムを終了させられます。

20070117121528.png

実はXPの場合 無限ループで固まったプログラムでも しばらく放って置けば×ボタンが押せるようになり、そこから終了する事が出来ます。そのほか固まっていないプログラムならキーボードの Alt + F4 キーでアクティブなウィンドウのプログラムを終了する事も出来ます。

しかしこれらの方法では、ウィンドウを持たないプログラムの強制終了は出来ませんね。でも安心して下さい、ちゃんとタスクマネージャーからなら終了させる事が出来ます。

タスクマネージャーから「プロセス」タブをクリックしてください。
そうすると現在実行中の全てのプログラムが表示されますので、終了したい項目を選択して「プロセスの終了」ボタンを押します。

20070117121533.png
ですがこれには注意して下さい。間違えて他の大事なプログラムを終了してしまうと、パソコンが不安定になったりフリーズしてしまう事もあるので、自分が分かっているプログラム以外はむやみに終了しないで下さい。

それでは最後に 実際にワザと無限ループを作って強制終了してみましょう。
(その前に作業中のデータがある場合は ねんのために保存して置きましょう、あとウィンドウズXP以外では少しやり方も見た目も違うので注意が必要です。特に Ctrl + Alt + Delete キーの同時押しを2回続けて押すとパソコンが再起動してしまうので特に注意して下さい。詳しく知りたい方は検索してみましょう。)

次の無限ループするプログラムを入力し、実行した後、タスクマネージャーから終了してみましょう。

repeat


loop



どうでしたか?ちゃんと終了させられましたか?
今回はちょっと長かったですね、
書いてる私も途中から訳が分からなくなって来ましたよ・・・。
ぐるぐるループを覚えると出来る事が増えてきます、
これからが楽しい時期ですよ。頑張って下さいね。
次回は、えっと・・・まだ繰り返しどぇす。
関連記事

コメント

コメントの投稿

   管理者にだけ表示を許可する
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。