前提・実現したいこと
実行はできるが実行するごとに結果表示の順番が変わる。
村田と岡田と鈴木と山田のprintScoreは正常に実行させ、佐藤だけMAX_SCOREを超えているためそれの例外処理をするというプログラムを書きたい。
このコードを実行すると上の四人は正しく表示され佐藤だけif文の条件に当てはまり”scoreの値が変です”と実行結果の欄に表示されるのですがその言葉の場所が1行目の時もあれば3行目の時もあるなど場所が定まらないのでその理由はなぜなのか教えていただきたいです。
発生している問題・エラーメッセージ
エラーメッセージ
該当のソースコード
public class Student { String name; int score; String grade; static final int MAX_SCORE=100; void printScore() { try { if(score<0||MAX_SCORE<score) { throw new IllegalArgumentException("scoreの値が変です"); } System.out.println(name+"さんは"+MAX_SCORE+"点満点中、" + score+"点です"); }catch(IllegalArgumentException e) { System.err.println(e.getMessage()); } } } public class StudentSample { public static void main(String[] args) { Student murata=new Student(); murata.name="村田"; murata.score=80; murata.printScore(); Student okada=new Student(); okada.name="岡田"; okada.score=90; okada.printScore(); Student suzuki=new Student(); suzuki.name="鈴木"; suzuki.score=70; suzuki.printScore(); Student yamada=new Student(); yamada.name="山田"; yamada.score=60; yamada.printScore(); Student sato=new Student(); sato.name="佐藤"; sato.score=190; sato.printScore(); } }
試したこと
数回実行した。
補足情報(FW/ツールのバージョンなど)
実行はできるが毎回実行結果が表示される順番が変わってしまう理由が知りたい。
自分ではコードのprintScoreが実行される順番、つまり
murata
okada
suzuki
yamada
sato
の順番に実行結果が表示されると思ったのですがsatoの結果が1番下では無くmurataとokadaの間に出たら1番上に出たりとランダムで結果が出てきてしまいます。
回答1件
あなたの回答
tips
プレビュー