题目:
从屏幕输入10个数,在输入错误的情况下,给出相应的提示,并继续输入。在输入完成的情况下,找到最大最小数。
应用:
- 输入10个数字,若输入非整数则提示“输入错误!”,并继续输入,直到输满10个数,然后输出最大最小值。
- 输入年龄不到1
~
100范围内,则抛出异常“年龄范围错误!必须在0~
100之间!”,无异常则输出年龄。
应用1:
提示:
输入:Scanner sc = new Scanner(System.in); int x = sc.nextInt();
import java.util.Scanner;
public class Test {
static Scanner in;
static int i;
public static int Getnum() {
in = new Scanner(System.in);
System.out.print("请输入第" + (i+1) + "个数字:");
return in.nextInt();
}
public static void main(String[] args) {
int[] a = new int [10];
for(i=0; i<a.length; ++i) {
try {
a[i] = Getnum();
}
catch(Exception e) {
System.out.println("输入错误!");
in.next();
i--;
}
}
int max = a[0];
int min = a[0];
for(int i=1;i<a.length;++i) {
max = Math.max(a[i], max);
min = Math.min(a[i], min);
}
System.out.println("最大数为:"+max);
System.out.println("最小数为:"+min);
}
}
应用2:
提示:
- 在setAge(int age)中对年龄进行判断,如果年龄介于1到100直接赋值,否则抛出异常。
- 在测试类中创建对象并调用
setAge(int age)
方法,使用try-catch
捕获并处理异常。
import java.util.Scanner;
public class Test {
int age;
int inPut() {//输入年龄
Scanner in = new Scanner(System.in);
System.out.println("请输入年龄:");
return in.nextInt();
}
public void setAge(int age) throws Exception{
if(age>=1 && age<=100) {
this.age = age;
}
else {
throw new Exception("年龄范围错误!必须在1~100之间!");
}
}
public static void main(String[] args) {
Test a = new Test();
int b = a.inPut();
try {
a.setAge(b);
System.out.println("年龄为" + a.age);
}
catch(Exception e) {
e.printStackTrace();
}
}
}