よくある問題だと思うのですが、if文の練習としてある範囲の点数をとった時にそれに応じたコメントが表示されるようにするというプログラムを書きました。具体的には以下の通りです。
コマンドライン引数から数値を1つ受け取り、これをテストの点数とする。
点数が0~100以外の数字だった場合 ⇒「不正な点数です!」と表示。
点数が0~59の数字だった場合 ⇒「赤点です!」と表示。
点数が60~79の数字だった場合 ⇒「普通です!」と表示。
点数が80~100の数字だった場合 ⇒「優秀です!」と表示。
点数の数字が100だった場合、「満点だったので宿題免除です!!」と最後に表示。
上記のプログラムを実行させるために私が書いたコードは以下の通りです。
Java
1int score = Integer.parseInt(args[0]) ; //コマンドライン引数から点数を受け取る 2 3 if((score>=0)&&(score<60)){ 4 5 System.out.println("「赤点です!」"); 6 7 }else if( score < 80 ){ 8 9 System.out.println("「普通です!」"); 10 11 }else if( score <= 100 ){ 12 13 System.out.println("「優秀です!」"); 14 15 }else{ 16 17 System.out.println("「不正な点数です!」"); 18 19 } 20 21 if( score == 100 ){ 22 23 System.out.println("「満点だったので宿題免除です!!」"); 24 25 } 26
実際コマンドラインに数字を打ち込むと、ほとんどは打ち込んだ数字にあったコメントがプログラム通りに表示されますが、一つだけ問題点があります。
何故かマイナスの数字(ゼロ未満の整数)をコマンドライン引数として打ち込んだ場合のみ、「普通です!」と表示されてしまいます。私としては0より下または100より上の数字を打ち込んだときには「不正な点数です!」と表示されるようにプログラムを書いたつもりですし、100より上の数(例えば200とか)を打ち込んだ際には「不正な点数です!」が正しく表示されるのです。ですが、マイナスの整数を打ち込んだときのみプログラムがきちんと行われません。ちなみにマイナス記号も含めきちんと半角で打っていますが全くダメです...。
いったい何を間違えているのか見当もつきません。どなたかアドバイス頂ければ嬉しく思います。
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/02/18 07:56
2020/02/19 04:36
2020/02/19 08:03
2020/02/19 10:01
2020/02/19 16:28