package com.expriment7;import java.util.Scanner;public class Demo_1 extends addNum{ /**
 * @param args
 */
public static void main(String[] args) {
// TODO Auto-generated method stub
addNum an=new addNum();
System.out.print("请输入两个整数:");
try {
an.inputNum();
} catch (Exception e) {

System.out.print("输入类型不正确,请从新输入两个整数:");
an.inputNum();

}
int result=an.num[0]+an.num[1];
System.out.println("和是:"+result);
}}
class addNum
{
int num[]=new int[2];
public void inputNum()
{
Scanner in=new Scanner(System.in);

for(int i=0;i<2;i++)
{
num[i]=in.nextInt();
}
}
}
结果如图片,写到上面的代码不会写了,请高手帮忙看看应该咋写!

解决方案 »

  1.   

    输出结果应该这样
    请输入两个整数:a b
    不正确输入,请从新输入:1 a
    不正确输入,请从新输入:3.5 2.5
    不正确输入,请从新输入:12 22
    和是:34
      

  2.   


    import java.util.Scanner;public class Demo_1 extends addNum{
        public static void main(String[] args) {
            addNum an=new addNum();
    int result = an.inputNum();
            System.out.println("和是:"+result);
        }
    }
    class addNum {
        int num[]=new int[2];
        public int inputNum(){
            Scanner in=new Scanner(System.in);
            System.out.print("请输入两个整数:");
            String[] str = new String[2];
            boolean flag = true;
            while(flag){
              for(int i=0;i<2;i++)
                 {
                  str[i]=in.next();
                  if(!str[i].matches("\\d+")){
                  in.nextLine();//吃掉多余的字符串。
                  System.out.print("请重新输入两个整数:");
                  break;
                  }
                 
                  else{
                  num[i] = Integer.parseInt(str[i]);
                  if(i == 1) flag = false;//什么时候退出。
                  }
                 }
            }
    return num[0]+num[1];
        }
    }
      

  3.   

    import java.util.Scanner;public class Demo_1 { /**
     * @param args
     */
    public static void main(String[] args) {
    // TODO Auto-generated method stub
    addNum an=new addNum();
    boolean a=true;
    System.out.print("请输入两个整数:");
    while(a){
    try {
    an.inputNum();
    a=false;
    } catch (Exception e) {

    System.out.print("输入类型不正确,请从新输入两个整数:");
    //an.inputNum();
    a=true;

    }
    }
    int result=an.num[0]+an.num[1];
    System.out.println("和是:"+result);
    }}
    class addNum
    {
    int num[]=new int[2];
    public void inputNum()
    {
    Scanner in=new Scanner(System.in);

    for(int i=0;i<2;i++)
    {
    num[i]=in.nextInt();
    }
    }
    }我自己想出来了 能实现 但是觉得不太好!
      

  4.   

    请问:  
     !str[i].matches("\\d+" ) 
    什么意思????
      

  5.   

    这个程序的bug,当数值越界时候会报错。楼主还是像你的那么来吧,我看可以了。