エラーの種類 〜エラーが出ないが動作がおかしい場合〜
☆ エラーは出ないが動作がおかしい
・プログラムが動き続けて終わらない
(実行すると、動き続けて止まらない)
原因 ① プログラムはユーザーからの入力を待っている状態。
java.util.Scannerなどを使ってキー入力を試みるとこの状態になる。
② プログラムは無限ループに陥っている
誤った終了条件。for文などを記述した場合に起こる。
〈プログラムの中断方法 コマンドラインプロンプトの場合〉
CTRLキーを押しながらCキーを押すと実行中のプログラムを強制終了できる
eclipseやNotBeansなどの統合開発環境などの場合、操作メニューかたプログラムを終了させる
①の場合の原因
キーボード入力待ちによってプログラムが終わらないことは正しい動作だが、
利用者が「キーボード入力を待っている」と分からないから動き続けていると勘違いしまう
解決策 利用者に対して「キーボード入力を待っている」ことが伝わるように
「◯◯を入力してください」のようなプロンプト(表示)を出すようにする
②の場合
これはプログラムミスなので、ループ終了条件を確認し、ループの中でカウンタ変数を次に進めているかを確認する
ex ifによる条件分岐が正しく動作しない
(if(str=="hello"){…}のような条件分岐を含むプログラムを実行すると、エラーは出ないものの、
ブロック内の実行がされない
原因 文字列の比較に==を使っているから
解決策 文字列の内容が等しいかどうかの判定には==演算子ではなく equals( )メソッドを使う
・金額やフォルダ名の画面表示がおかしい
ex ¥1200やc:¥notepcを出力させようとすると、エラーは出ないものの画面におかしな文字が表示される
原因 ¥記号は特殊文字
¥1200ではなく、¥¥1200にしないと¥120→P(文字コード)に置き換えられてしまい、おかしな文字が表示される
解決策 文字リテラルの中で¥文字を用いたい場合"¥¥"という表記が必要