菜鸟求助异常小问题!!

xy363338623 2012-05-25 07:23:32
这是一个计算输入的整数的和。
我的问题是,如果我输入的不是整数,我想从当前输入的数重新开始
比如:
请输入第一个数:10
请输入第二个数:20
请输入第三个数:asdf
数字格式错误,请重新输入!
请输入第三个数:
您输入的三个整数的和为:……
我想用异常实现,该怎么做?


import java.util.*;

class Test{
public static void main(String[] args){
Test.test(3);
}

public static void test(int x){
int sum = 0;
Scanner input = new Scanner(System.in);

for(int i = 1; i <= x; i++){
System.out.print("请再输入第" + i + "个正整数:");
sum += input.nextInt();
}

System.out.println("您输入的" + x + "个整数的和为:" + sum);//输出最后一次的和就是总和
}
}
...全文
120 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
xy363338623 2012-05-25
  • 打赏
  • 举报
回复
额。。正则表达式还没学,刚看了下InputMismatchException异常是什么正则表达式的,按2楼的说法做就会抛这个异常,看来我还得继续学才能解决这个问题啊。。
yuppy 2012-05-25
  • 打赏
  • 举报
回复
如果用异常,你也要考虑第一次就错的情况
看那边 2012-05-25
  • 打赏
  • 举报
回复
在input.nextInt();这里。用try catch语句。捕获异常。在catch语句中重新输入
yuppy 2012-05-25
  • 打赏
  • 举报
回复
说个不用异常的思路给lz

count = 0;
while(count < 3){

if(count == 0) 请求输入第一个
if(count == 1) 请求输入第二个
if(count == 2) 请求输入第三个
//正确读一个,这里可以用正则校验是否为数字
count++;
}

大概就是这样

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧