java switch 选择结构语句,输入非数字的解决方案!

来源:互联网 发布:base64 java 保存图片 编辑:程序博客网 时间:2024/06/14 06:05

import java.util.Scanner;

public class Test {

/** * @param args */public static void main(String[] args) {    Scanner input = new Scanner(System.in);    int num=0;    System.out.println("请输入一个数:");    do{    //input.hasNextInt()判断输入的是不是整型的数字    if(input.hasNextInt()){//判断正确进入if,否则进入else.        num=input.nextInt();        break;    }else{        //如果不加这行代码输入字母的话就会出现死循环,加上去的目的是把循环吸走,保存到非数字内存中去。        input.next();        System.out.print("请输入正确的数字:");    }    }while(true);//如果输入的是正确的整型字而非字母就输出。    System.out.println("正确的数字是:"+num);}

}

/**请输入一个数:
* a
* 请输入正确的数字:6
* 正确的数字是:6
*
*
*
* 以上是如果输入字母的解决方案!
**/

/**以下是如果输入的是字母出现的错误情况!
* Scanner input = new Scanner(System.in);
* int num=0;
* System.out.println(“请输入一个数:”);
* num=input.nextInt();
* System.out.println(“正确的数字是:”+num);
* }

*}
*请输入一个数:
* a 我输入的是字母出现的就是下面的运行错误!
* Exception in thread “main” java.util.InputMismatchException
* at java.util.Scanner.throwFor(Unknown Source)
* at java.util.Scanner.next(Unknown Source)
* at java.util.Scanner.nextInt(Unknown Source)
* at java.util.Scanner.nextInt(Unknown Source)
* at Test.main(Test.java:34)
**/

0 0