== Rhinoプログラムの作成と実行 == Rhinoへの質問(入力)を順に記述したものがプログラムになります。 ---- == プログラム == コンピュータと会話するときに1つずつ質問を入力しては答を得るのではなく、いくつかまとめて質問できると便利ですね。 質問内容をファイルに記述しておき、そのファイルを読んで処理するように指示できます。 質問(処理)内容を順に記述したものを'''スクリプト'''または'''プログラム'''と呼びます。 . {{attachment:rhino7.png}} プログラムの作成はテキストエディタ(テラパッド)を使って行います。 . {{attachment:editor.png}} rei.js という名前でproディレクトリの中に保存します。(reiの部分はそのつど変わります) プログラムの実行は Rhino との会話画面で行います。 . {{attachment:comm3.png}} シングルクオートの内側の rei の箇所はそのつど変わります。 上の絵のどの部分と対応しているか確認してください。 ---- === プログラムを実行する === プログラムを読み込むには load 命令を使います。 {{{ JS> load( 'ex0516.js' ); }}} のように load( と ); の間にファイル名をシングルクオートで挟んで入力します。 . {{attachment:load1.png}} load命令を入力すると、指定されたファイルを読み込んで、ファイルに記述された内容(プログラム)にしたがって処理します。 プログラム内に計算の指示があれば計算が行われ、表示の指示があれば表示が行われます。 処理はプログラム内に記述された順に、1行目から順に行われます。 表示はプログラム内で指示したものだけ行われます。 プログラムに間違いがあったときには、エラーメッセージが表示されるので、プログラムを修正してからもう一度loadを行ってください。 '''例''' {{{ JS> load( 'sample.js' ); プログラミング入門 8 }}} ---- === プログラムの動作確認 === プログラムを作成したら、必ず、正しく実行されるか確かめなければなりません。 実行結果(コンピュータからの反応)が自分の予想した通りになっているか、そうでないかを判断してください。 予想どおりでないときは、なぜ予想とちがうのか考えましょう。 ==== エラー対応 ==== 会話画面でエラーが出たとき(英文のメッセージが表示される)の対応方法。 メッセージの先頭付近に とあるときは、会話画面での入力に誤りがあるか、プログラムが保存されていないかです。 それ以外のメッセージのときは、プログラム内に誤りがあります。 ---- === ちょっと便利な使い方 === 会話画面で '''↑'''(上向き矢印)を押すと、直前に入力したものと同じ内容が現れます。 この方法を覚えると、何度も load('filename.js'); を打たなくても済みます。 ---- === エラーメッセージ === 1) JS> に対して入力した命令( load命令 )に間違いがあったときは {{{ js: "", line 4: uncaught JavaScript runtime exception: }}} のようにエラーメッセージの先頭が "" になります。 2) 入力時の間違いでよく現れるのは次のメッセージです。 {{{ js: "", line 5: Couldn't open file "filename" }}} これはload命令で指定したファイルが見つかりませんというエラーです。 . {{attachment:rhino4.png}} 3) load命令は正しいけれども、loadしようとしたプログラムの中に文法的な誤りがあるときは、数行にわたる表示がされます。 {{{ js: "file1.js", line 4: missing ) after argument list js: print ( 3b ); js: ..........^ js: "file1.js", line 1: Compilation produced 1 syntax errors. }}} メッセージの先頭部分には処理しようとしているファイル名が示されます。 その右にはエラーが見つかった行番号とエラー内容が表示され、 次の2行を使って、見つかった位置を示しています。 最後の行は文法的なエラーが見つかったというメッセージです。 上の3行が間違いを探す手助けになります。 . {{attachment:rhino5.png}} 4) 文法的には正しいけれども分らない名前が現れたなどのエラーが発生したときの例です。 {{{ js> load( 'file2.js' ) 練習2 320 js: "file2.js", line 3: uncaught JavaScript runtime exception: ReferenceError: "b" is not defined. }}} エラーが発生した行より前の行まではプログラムが実行され、表示の指示があれば表示も行われます。 エラーメッセージの先頭部分には処理中のファイル名が示され、その右にはエラーが見つかった行番号とエラー内容が表示されます。 3)と4)の違いに注意してください。 プログラムのどこに間違いがあるのか知るためには、エラーメッセージの中から重要な箇所(赤字で示した箇所)を見つけ出せると簡単です。 ---- === デバッグ === プログラムの間違いを修正することをデバッグ(虫取り)と言います。 このときには、エディタを使った編集作業と、Rhinoとの会話という2つを切り替えながら行うことになります。 どちらの作業が必要なのか、エラーメッセージや実行結果を見て判断しましょう。 ---- === 注意 === 保存した .js 形式のファイルはダブルクリックしても開けません。 再度編集したいときは、terapadを起動してから ファイルメニューを使って開く ファイルをterapadの画面にdrag&dropする のどちらかの方法で行います。