第十周java作业
2017-12-13 11:37
357 查看
练习一:
写一个方法void triangle(int a,int b,int c),判断三个参数是否能构成一个三角形。如果不能则抛出异常IllegalArgumentException,显示异常信息:a,b,c “不能构成三角形”;如果可以构成则显示三角形三个边长。在主方法中得到命令行输入的三个整数,调用此方法,并捕获异常。
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
运行截图:
练习二:
从命令行输入5个整数,放入一整型数组,然后打印输出。要求:
如果输入数据不为整数,要捕获输入不匹配异常,显示“请输入整数”;如果输入数据多余5个,捕获数组越界异常,显示“请输入5个整数”。
无论是否发生异常,都输出“感谢使用本程序!”
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
运行截图:
写一个方法void triangle(int a,int b,int c),判断三个参数是否能构成一个三角形。如果不能则抛出异常IllegalArgumentException,显示异常信息:a,b,c “不能构成三角形”;如果可以构成则显示三角形三个边长。在主方法中得到命令行输入的三个整数,调用此方法,并捕获异常。
package exceptionDemo01; import java.lang.reflect.Array; import java.util.Arrays; import java.util.Scanner; public class Test { public static void main(String[] args) { // TODO Auto-generated method stub int a,b,c; System.out.println("请输入三个整数:"); Scanner input = new Scanner(System.in); a = input.nextInt(); b = input.nextInt(); c = input.nextInt(); triangle(a,b,c); } public static void triangle(int a,int b,int c) throws IllegalArgumentException{ int[] number = {a,b,c};//这里用数组是为了方便排序,省的自己冒泡 Arrays.sort(number);//从小到大排序,例:输入5 1 7,则输出1 5 7 /* * 因为这里拍 4000 好序了,所以只需要满足 * 最大的值-第二大的值 < 最小的值 * 最小的值+第二小的值 > 最大的值 */ if (number[0]+number[1] > number[2] && number[2]-number[1] < number[0]) { System.out.println(a+" "+b+" "+c); System.out.println("可以构成三角形"); }else{ System.out.println("a="+a+",b="+b+",c="+c+"不能构成三角形"); throw new IllegalArgumentException(); } } }1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
运行截图:
练习二:
从命令行输入5个整数,放入一整型数组,然后打印输出。要求:
如果输入数据不为整数,要捕获输入不匹配异常,显示“请输入整数”;如果输入数据多余5个,捕获数组越界异常,显示“请输入5个整数”。
无论是否发生异常,都输出“感谢使用本程序!”
package exceptionDemo02; import java.util.Scanner; public class Test { public static void main(String[] args) { // TODO Auto-generated method stub int[] a = new int[5]; System.out.println("请输入一组整数:"); Scanner input = new Scanner(System.in); String str = input.nextLine(); /* * 通过空格字符来将输入的一行数据分割成一个String类型的数组 */ String[] b = str.split(" "); try { for (int i = 0; i < b.length; i++) { a[i] = Integer.parseInt(b[i]);//将String类型的数据转换成int类型的 } } catch (NumberFormatException e) { // TODO Auto-generated catch block //大概的汉语意思是数字格式错误异常 System.out.println("请输入整数"); e.printStackTrace(); } catch (ArrayIndexOutOfBoundsException e) { // TODO: handle exception System.out.println("数组越界:请输入5个整数"); e.printStackTrace(); }finally{ System.out.println("感谢使用本程序!"); } } }1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
运行截图:
相关文章推荐
- 第十周java作业--异常
- JAVA--第十周作业编写之一个Teacher类负责给出算术题目,随机给出两个整数并进行运算,并判断回答者的答案是否正确;编写一个GUI类ComputerFrame,回答者可以通过GUI看到题目并给出
- 第十周java作业
- Java基础-第四天作业
- Hadoop 运行作业java堆溢出:java.lang.outofmemoryerror: java heap space hadoop
- Java第二次作业参考代码
- Java 程序小作业 输入 字符串转化
- 第十四周java作业
- 使用老版本的java api提交hadoop作业
- JAVA第四次作业(2接口练习题)
- java字符串获取方法及作业题
- Java第三次作业
- java作业16/17
- Java_Day16_作业
- JAVA第六次作业 抽奖
- 图形学作业(Java源码)
- java第二次作业(2)
- 《Java程序设计》第二次作业:MySQL数据库及Java操作MySQL数据库 之二
- java第十周封装一类对象,功能是随机产生一个2000年后的年份,并输出该年2月的日历页,需处理闰年的问题。
- JAVA技术支持课--第三次java语言技术支持授课思路 (课件及作业)