2010年10月31日日曜日

nScript講座 第6回

みなさん、ちゃんと前回の復習しましたか?
やらなくても忘れちゃだめですよ?
自分なりに組換えていろんなものをつくってみてくださいね。

さて、今回はかっこいいアプリケーションを作る前に、もう少しスクリプトの書き方について解説したいとこがあるので、話させてくださいね。

ではサンプルいきましょう!

///////////////////////////////////////
Function main() {
puts ("main function start¥n");
Sleep(1);
func();
puts ("return¥n");
}

Function func() {
puts ("func function start¥n");
Sleep(1);
break;
}
///////////////////////////////////////

あれ?そういえばSleep関数説明してなかった。
と、いうわけでSleep関数もいれてサンプルつくりました。
っていうか毎度の如く訳わからないやつばっかですよねw
まあ実行してくださいな。

では解説しましょう。
まずは新出関数のSleep関数についてです。
使い方は至って簡単。構文としては
Sleep (秒);
となります。
秒の値だけ、次の処理に進むのを止めるものです。
ただ、1を入れれば1秒待つのですが
0.9をいれても0.9秒待ってくれはしなさそうです。。
正確な時間で待たせたいならば、値は整数のほうがいいと思います。
環境によって様々ですが。

あと、わからないのはbreak命令ですね。
これは関数というよりは命令です。
これを実行すると、、いや、いいや。
ちょっとこの解説あとにまわしますね。


これでわからない命令はなくなりました。
では本日一番の謎に迫りましょう。

...みたらわかると思いますが。
今回のスクリプトには関数というまとまりが2つあります。
処理のまとまりが関数だっていう話はしたと思います。
では関数をどうやってつくったか。改めて書きましょう。
Function 関数名() {
処理
}
という構文ですね。
いままで関数には勝手にmainという名前をつけて、んで中身を実行させてたわけです。
いままで関数は勝手に実行されてましたが、これはnScriptのインタープリターが「まず一番上にある関数を実行する」と決めていたから勝手に実行されていたわけです。

つまり、です。
自分で何個も関数を作って、処理ごとのまとまりを作り、それらを自分で実行させるようにすることもできるわけです。
その例が今回のサンプルです。

今回は、main関数とfunc関数の、二つの関数をつくりました。
そしてmain関数からfunc関数を呼出させています。
関数の呼出し方は
関数名();
です。簡単ですね。

関数とプログラムの動き方には決り事があります。

1、始めに実行した、一番上にある関数を抜けたらプログラムを終了する。
2、何かから呼出した関数から抜けた場合は呼出し元の関数の呼出し直後に戻る。

この二つです。
関数を抜けるというのは、
最後まで処理をし終えたとき
又はbreak命令が実行されたとき
又はreturn命令が実行されたときの三パターンを表します。
最後まで関数を実行しないでも関数を抜けたいときには、breakかreturnを使います。
この二つの命令は、間違えてbreak();みたいにしないようにしてください。

これらを踏まえて今回のサンプルの流れをみてみましょう。

1、main関数が一番上にあるのでこれを実行。

2、文表示と待機の後にfunc関数を実行する。

3、文表示と待機を行い、break命令があるのでfunc関数を抜けてmain関数の呼出し直後にもどる。

4、文を表示したら始めに実行したmain関数を抜けるので、プログラムを終了する。


これで謎解明ですね!
次回も扱う内容は関数です。
今回のことをちゃんと覚えていても来週は難しい内容となりますから、ちゃんと使えるようにしておいてくださいね。
また、わからないとこがあったらこの最新記事にコメントして頂ければお答えします。

処理をわけておくことができるようになり、いろいろおもしろくなってきたので自分なりに組換えるのもやりがいがでてくるのでは?

来週からははもっと楽しくなりますよ.....

ではおたのしみに!!
.....ちなみに筆者はこんな感じでスクリプティングをしています↓

0 コメント:

コメントを投稿

Related Posts Plugin for WordPress, Blogger...

Twitter Delicious Facebook Digg Stumbleupon Favorites More

 
Design by Free WordPress Themes | Bloggerized by Lasantha - Premium Blogger Themes | Walgreens Printable Coupons