6.3(fact方法捕获异常)求n!,阶乘值是byte类型
2017-04-03 17:10
567 查看
摩尔的Java学习笔记6.3
第六周作业:
1、输入一个1~7之间的整数表示星期几,输出对应的英文单词(表示星期几);要求捕获以下异常:类型不匹配异常,如输入的是字符串等;输入的数值范围不合理,如>7,或<=0;2、判断一个数能否被3整除,如果不能整除就抛出一个异常,并让其调用方法来捕获,显示相应的处理信息;
3、(fact方法捕获异常) (1)fact方法的功能是求n!,阶乘值是byte类型;(2)当n!值超过byte数据类型的范围(Byte.MIN_VALUE 、Byte.MAX_VALUE)时,运算结果不正确,但系统并不产生异常,所以要程序员自己抛出异常;(3)在主方法中调用该方法;
4、(fact方法声明异常,主方法捕获异常) (1)fact方法的功能是求n!,阶乘值是byte类型;(2)当n!值超过byte数据类型的范围(Byte.MIN_VALUE 、Byte.MAX_VALUE)时,运算结果不正确,但系统并不产生异常,所以要程序员自己抛出异常;(3)在主方法中调用该方法;
5、(fact方法和主方法都声明异常) (1)fact方法的功能是求n!,阶乘值是byte类型;(2)当n!值超过byte数据类型的范围(Byte.MIN_VALUE 、Byte.MAX_VALUE)时,运算结果不正确,但系统并不产生异常,所以要程序员自己抛出异常;(3)在主方法中调用该方法。
3、(fact方法捕获异常) (1)fact方法的功能是求n!,阶乘值是byte类型;(2)当n!值超过byte数据类型的范围(Byte.MIN_VALUE 、Byte.MAX_VALUE)时,运算结果不正确,但系统并不产生异常,所以要程序员自己抛出异常;(3)在主方法中调用该方法;
import java.util.*; //fact方法捕获异常 class Factorial { public static void main(String[] args) { Scanner sc=new Scanner(System.in); Factorial factorial=new Factorial(); System.out.println("请输入要求的阶乘n!的值:"); int n=sc.nextInt(); factorial.fact(n); } void fact(int n){ int sum=1; try{ for(int i=1;i<n+1;i++){ sum*=i; if(sum<Byte.MIN_VALUE||sum>Byte.MAX_VALUE){ throw new OutOfRangeException(); } } byte result=(byte)sum; System.out.println("阶乘n!的值为:"+result); }catch(InputMismatchException e){ System.out.println("输入数据类型不匹配。"); }catch (OutOfRangeException e){ System.out.println(e.getMessage()); //fact方法捕获异常 }catch (Exception e){ System.out.println("程序出现错误。"); }finally{ System.out.println("结束!"); } } class OutOfRangeException extends Exception{ OutOfRangeException(){ super("阶乘n!的值超出 byte数据类型的范围。"); } } }
相关文章推荐
- 6.5(fact方法和主方法都声明异常) 求n!,阶乘值是byte类型
- 1.使用try catch 捕获除0异常,并打印信息“不能除0”. * 2.将字符串“12.5” 转换为float类型 * 3.将int类型的127转换成 byte和short类型
- 异常捕捉先后顺序------getCustomerInfo()方法如下,try中可以捕获三种类型的异常,如果在该方法运行中产生了一个IOException,将会输出什么结果()
- 捕获异常的方法、以及常见异常类型
- c# 中异常捕获catch{}常用的异常类型
- winform程序未捕获异常解决方法
- “NHibernate.Cfg.Environment的类型初始值设定项引发异常”的解决方法
- 异步调用方法时异常的捕获
- c#中异常捕获catch{}常用的异常类型
- "类型初始值设定项引发异常" 解决方法
- 多种方法实现异常捕获和事务一致性
- c#数据类型转换,BYTE,float,double,char类型间的转换方法
- WPF捕获异常方法
- 关于委托:异常{ 无法将 匿名方法 转换为类型“System.Delegate”,因为它不是委托类型 }
- 捕获异常方法
- c#数据类型转换,BYTE,float,double,char类型间的转换方法
- MySql中捕获异常的方法
- 几种捕获ClientDataSet.ApplyUpdates和SocketConnection异常的方法比较
- 异常详细信息: System.InvalidCastException: 对象不能从 DBNull 转换为其他类型——的解决方法
- 从异常{ 无法将 匿名方法 转换为类型“System.Delegate”,因为它不是委托类型 }说开去