welcome: please sign in

リモートwikiのアカウントとパスワードを入力してください。
/!\ ただし、双方のwiki管理者にパスワードを見られる可能性があります。

メッセージを消す
location: Rhinoのプログラムの作成と実行

Rhinoプログラムの作成と実行

Rhinoへの質問(入力)を順に記述したものがプログラムになります。


プログラム

コンピュータと会話するときに1つずつ質問を入力しては答を得るのではなく、いくつかまとめて質問できると便利ですね。 質問内容をファイルに記述しておき、そのファイルを読んで処理するように指示できます。 質問(処理)内容を順に記述したものをスクリプトまたはプログラムと呼びます。

プログラムの作成はテキストエディタ(テラパッド)を使って行います。

rei.js という名前でproディレクトリの中に保存します。(reiの部分はそのつど変わります)

プログラムの実行は Rhino との会話画面で行います。

シングルクオートの内側の rei の箇所はそのつど変わります。

上の絵のどの部分と対応しているか確認してください。


プログラムを実行する

プログラムを読み込むには load 命令を使います。

のように load( と ); の間にファイル名をシングルクオートで挟んで入力します。

load命令を入力すると、指定されたファイルを読み込んで、ファイルに記述された内容(プログラム)にしたがって処理します。

プログラム内に計算の指示があれば計算が行われ、表示の指示があれば表示が行われます。

処理はプログラム内に記述された順に、1行目から順に行われます。 表示はプログラム内で指示したものだけ行われます。

プログラムに間違いがあったときには、エラーメッセージが表示されるので、プログラムを修正してからもう一度loadを行ってください。


プログラムの動作確認

プログラムを作成したら、必ず、正しく実行されるか確かめなければなりません。

実行結果(コンピュータからの反応)が自分の予想した通りになっているか、そうでないかを判断してください。

予想どおりでないときは、なぜ予想とちがうのか考えましょう。

エラー対応

会話画面でエラーが出たとき(英文のメッセージが表示される)の対応方法。

メッセージの先頭付近に <stdin> とあるときは、会話画面での入力に誤りがあるか、プログラムが保存されていないかです。 それ以外のメッセージのときは、プログラム内に誤りがあります。


ちょっと便利な使い方

会話画面で (上向き矢印)を押すと、直前に入力したものと同じ内容が現れます。 この方法を覚えると、何度も load('filename.js'); を打たなくても済みます。


エラーメッセージ

1) JS> に対して入力した命令( load命令 )に間違いがあったときは

のようにエラーメッセージの先頭が "<stdin>" になります。

2) 入力時の間違いでよく現れるのは次のメッセージです。

これはload命令で指定したファイルが見つかりませんというエラーです。

3) load命令は正しいけれども、loadしようとしたプログラムの中に文法的な誤りがあるときは、数行にわたる表示がされます。

メッセージの先頭部分には処理しようとしているファイル名が示されます。 その右にはエラーが見つかった行番号とエラー内容が表示され、 次の2行を使って、見つかった位置を示しています。 最後の行は文法的なエラーが見つかったというメッセージです。 上の3行が間違いを探す手助けになります。

4) 文法的には正しいけれども分らない名前が現れたなどのエラーが発生したときの例です。

エラーが発生した行より前の行まではプログラムが実行され、表示の指示があれば表示も行われます。 エラーメッセージの先頭部分には処理中のファイル名が示され、その右にはエラーが見つかった行番号とエラー内容が表示されます。

3)と4)の違いに注意してください。 プログラムのどこに間違いがあるのか知るためには、エラーメッセージの中から重要な箇所(赤字で示した箇所)を見つけ出せると簡単です。


デバッグ

プログラムの間違いを修正することをデバッグ(虫取り)と言います。

このときには、エディタを使った編集作業と、Rhinoとの会話という2つを切り替えながら行うことになります。 どちらの作業が必要なのか、エラーメッセージや実行結果を見て判断しましょう。


注意

保存した .js 形式のファイルはダブルクリックしても開けません。

再度編集したいときは、terapadを起動してから ファイルメニューを使って開く ファイルをterapadの画面にdrag&dropする のどちらかの方法で行います。