前提・実現したいこと
教科の点数を入力して、合格の場合は各教科ごとに合格、赤点の場合も各教科ごとに不合格と表示させ、合計点と平均点をだすプログラムを書きました。プログラムは正常に動くんですが、中間らへんの怒涛のif else文がすごく気になるので、もっと短縮して書く方法などがあれば教えていただきたいです。まだ始めて一週間なので文法などはここまでしか学んでいません。
該当のソースコード
java
1package rensyuu5; 2 3public class Rensyuu5 { 4 5 public static void main(String[] args) { 6 // TODO 自動生成されたメソッド・スタブ 7 8 System.out.println("今からあなたのテストについて聞きます"); 9 System.out.println("あなたの国語の点数を教えてください"); 10 11 int write1 =new java.util.Scanner(System.in).nextInt(); 12 System.out.println("次にあなたの数学の点数を教えてください"); 13 14 int write2 =new java.util.Scanner(System.in).nextInt(); 15 System.out.println("次にあなたの英語の点数を教えてください"); 16 17 int write3 =new java.util.Scanner(System.in).nextInt(); 18 System.out.println("次にあなたの理科の点数を教えてください"); 19 20 int write4 =new java.util.Scanner(System.in).nextInt(); 21 22 System.out.println("最後にあなたの社会の点数を教えてください"); 23 int write5 =new java.util.Scanner(System.in).nextInt(); 24 25 int writeborder =35; 26 27 28 if(write1>writeborder) { 29 System.out.println("国語合格"); 30 }else{ 31 System.out.println("国語不合格"); 32 } if(write2>writeborder) { 33 System.out.println("数学合格"); 34 }else{ 35 System.out.println("数学不合格"); 36 } if(write3>writeborder) { 37 System.out.println("英語合格"); 38 }else{ 39 System.out.println("英語不合格"); 40 } if(write4>writeborder) { 41 System.out.println("理科合格"); 42}else{ 43 System.out.println("理科不合格"); 44} if(write5>writeborder) { 45 System.out.println("社会合格"); 46}else{ 47System.out.println("社会不合格"); 48} 49 50 int sum =0; 51 int [] total = {write1,write2,write3,write4,write5}; 52 for(int i =0;i<total.length;i++) { 53 sum +=total[i]; 54 } 55 int avg =sum/total.length; 56 57 System.out.println("あなたの合計点は"+sum+"点で、"+"平均点は"+avg+"点です。"); 58 59 int border =180; 60 if(sum>border) { 61 System.out.println("あなたは合計が180点以上なので合格です。"); 62 }else { 63 System.out.println("あなたは180点以下なので不合格です。以後追試を行います。"); 64 } 65 } 66 67} 68
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/02/20 06:38