system.in 问题
用if语句实现学生成绩的百分制到等级制的转换。
写if实现的成绩判断,练习通过系统输入输入一个百分制分,通过选择结构Switch转换为英制分数(A:90-100, B:80-89 C:70-79 D: 60-69;F:1-59)(思考:把Switch改为if结构)
要求:
使用输入流System.in的读操作读入成绩。
把输入的String型转换成int型(使用Integer的一个静态方法ParseInt ())
用if结构判断成绩等级,然后返回结果(不及格的都是E,其它的从A-D每十分一个等级)
用一个循环控制你不断输入成绩并判断,直到成绩输入为0时退出程序。
帮帮忙啊
[解决办法]
public void judgedScore(){ BufferedReader br = null; try{ System.out.println("请输入成绩,并回车:"); br = new BufferedReader(new InputStreamReader(System.in)); String line = br.readline(); //做非法字符的判断,不是数字的等,这里就判断null和空字符 if(line == null || "".equals(line.trim())){ System.out.println("你录入的是非法字符,继续Y,其它建退出!"); br = new BufferedReader(new InputStreamReader(System.in)); line = br.readline(); } if(!"y".equalsIgnoreCase(line)){ return; } int score = Integer.parseInt(line.trim()); if(score > 100 || score < 0){ System.out.println("录入的是不符合逻辑的数值,继续Y,其它建退出!"); br = new BufferedReader(new InputStreamReader(System.in)); line = br.readline(); } if(!"y".equalsIgnoreCase(line)){ return; } int flag = 0; if(score >= 90){ flag = 1; }else if(score >= 80){ flag = 2; }else if(score >= 70){ flag = 2; }else if(score >= 60){ flag = 3; }else { flag = 4; } switch(flag){ case 1: System.out.println("你的成绩登记是A"); break; case 2: System.out.println("你的成绩登记是B"); break; case 3: System.out.println("你的成绩登记是C"); break; case 4: System.out.println("你的成绩登记是D"); break; default: System.out.println("成绩无效!"); } System.out.println("是否继续录入?继续Y,其它建退出!"); br = new BufferedReader(new InputStreamReader(System.in)); line = br.readline(); if("y".equalsIgnoreCase(line)){ judgedScore(); } }catch(Exception e){ }}