赞
踩
要求:完成一个 java application应用程序,接收用户通过键盘不断输入表示某门课程的成绩的字符串(按回车为一个字符串结束),当输入非法数字(输入值小于0或大于100)时提示成绩输入有误,当输入为非数字的字符串时提示输入格式不合法。
此任务和之前相似仍需要自行定义异常类型,而此处异常要考虑两种情况,一是输入的字符串并非数字;二是输入的字符串数字过大或过小超出了现实中成绩的常规范围。这也是此题的关键,即如何去判断输入的字符串是否符合要求,可以总结为以下两个知识点:
//charAt(int index)方法是一个能够用来检索特定索引下的字符的String实例的方法,
//charAt()方法返回指定索引位置的char值。索引范围为0~length()-1.
//如: str.charAt(0)检索str中的第一个字符,str.charAt(str.length()-1)检索最后一个字符.
int 变量名 = Integer.parseInt(String 变量名);
import java.util.Scanner; /* 完成一个 java application应用程序,接收用户通过键盘不断输入表示某门课程的成绩的字符串(按回车为一个字符串结束), 当输入非法数字(输入值小于0或大于100)时提示成绩输入有误,当输入为非数字的字符串时提示输入格式不合法。 */ public class ExceptionWork3 {//类名 public static void main(String[] args) {//主入口 while (true){//定义死循环 Scanner s = new Scanner(System.in);//输入对象创建,键盘等待用户输入直到输入回车停止接收 System.out.println("请输入某门课程的成绩:"); String grade = s.nextLine();//读取键盘输入字符串 MygradeException m = new MygradeException();//自定义异常对象创建 if (!grade.equals("quit")){//未执行退出指令时 //异常捕捉 try {//未发生异常时执行try代码块 String a = m.Grades(grade);//将键盘输入字符串数据赋值到自定义异常类参数中 System.out.println("成绩记录成功"); }catch (Exception e){//发生异常时执行catch代码块 e.printStackTrace();//控制台打印输出异常信息 System.out.println("请重新输入合法成绩"); } }else {//用户输入“quit”后终止循环强制退出。 System.exit(0); } } } } //自定义异常类型GradeException继承父类Exception class GradeException extends Exception{ public GradeException(String msg){ super(msg);//继承父类构造方法 } } //自定义MygeadeException用于向上(GradeException)抛出异常 class MygradeException{ public String Grades(String grade)throws GradeException{//定义方法Grades向GradeException抛出异常 String a = grade; //判断输入字符串是否是数字 for (int i=0;i<a.length();i++){//使用length()方法获取字符串长度,进而遍历字符串 //charAt(int index)方法是一个能够用来检索特定索引下的字符的String实例的方法, //charAt()方法返回指定索引位置的char值。索引范围为0~length()-1. //如: str.charAt(0)检索str中的第一个字符,str.charAt(str.length()-1)检索最后一个字符. if (a.charAt(i)<'0' || a.charAt(i)>'9'){//通过遍历检索字符串中的每一个字符是否在‘0’-‘9’的范围内,即判断是否为数字 throw new GradeException("输入格式不合法");//抛出异常 } } //将String类型转换成int再判断大小是否符合成绩数值规定 int grades = Integer.parseInt(grade);//String类型数据转换成int类型 if (grades <0 || grades > 100){//判断数值是否在1-100内 throw new GradeException("成绩输入有误");//若不在则抛出异常 } return a;//返回a } }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。