1.输入若干个整数,并求和,直到结束标志999为止。在输入过程中,自动忽略掉输入的非整数。
提示:用Scanner的nextInt方法转换输入信息到整数,如果输入信息为非整数,方法将抛出名为InputMismatchException的异常,该异常封装在java.util包中。
2.修改以上程序,通过对负数输入产生异常的方式,对输入的负数不进行累加运算
1.
import java.util.InputMismatchException;
import java.util.Scanner;
public class Sum {
public Sum(){
int a=0,b=0;
Scanner reader=new Scanner(System.in);
do{
try{
b=reader.nextInt();
}catch(InputMismatchException e){
reader.next();
b=0;
}
a+=b;
}while(b!=999);
a-=999; // 999不作为一个数字,应该减去
System.out.println("输入整数的和为:"+a);
reader.close();
}
public static void main(String[] args) {
new Sum();
}
}
2.
import java.util.Scanner;
class MyException extends Exception{
private static final long serialVersionUID = 1L;
public MyException(Sum sum){
sum.b=0;
}
}
public class Sum {
float b=0;
public Sum() {
float a=0;
Scanner reader=new Scanner(System.in);
do{
b=reader.nextInt();
if(b<0)
new MyException(this);
a+=b;
}while(b!=999);
a-=999; // 999不作为一个数字,应该减去
System.out.println("除去负数后,输入数字的和为:"+a);
reader.close();
}
public static void main(String[] args) {
new Sum();
}
}