判断是否为自然数java_java判断输入的是否是自然数
/** ?* 編寫一個(gè)Java應(yīng)用程序的方法,該方法接收從鍵盤輸入的自然數(shù): ?* 如果輸入的數(shù)不是自然數(shù)。拋出異常,提示“請(qǐng)正確輸入數(shù)字!”,然后繼續(xù)等待用戶輸入。 ?* 如果輸入的數(shù)為正數(shù),則顯示這個(gè)數(shù),程序繼續(xù)運(yùn)行。 ?* 如果輸入為負(fù)數(shù),拋擲自定義的異常,輸出錯(cuò)誤信息后,程序終止運(yùn)行。 ?* 如果輸入的數(shù)為0,則程序終止運(yùn)行。注:本題中,0不當(dāng)作自然數(shù) ?* 當(dāng)程序終止運(yùn)行時(shí),會(huì)顯示"程序退出,Bye!"。 ?*/ import java.util.*; public class TestException { ?static double d; ?public static void main(String [] args){ ??System.out.println("請(qǐng)輸入一個(gè)數(shù)字:"); ??//首先通過調(diào)用testA()方法,要求能接收鍵盤輸入的數(shù),并對(duì)輸入進(jìn)行異常捕獲,以確定輸入的是數(shù)字。 ??double dd = TestException.testA(); //??System.out.println(dd); ??try { ???//此處調(diào)用testB()方法,可用來判斷在testA()方法中輸入的數(shù)是否是自然數(shù) ???int n = TestException.testB(dd);// ???System.out.println(n + " 是自然數(shù)"); ??} catch (MyException e) { ???// TODO Auto-generated catch block ???System.out.println("程序退出,Bye!"); ???e.printStackTrace(); ??} ?} ?public static int testB(double dd)throws MyException{ ??int n = (int)dd; //??System.out.println(n); ??if(dd < 0){ ???throw new MyException("輸入的是負(fù)數(shù),非法!"); ??} ??else if(dd == 0){ ???throw new MyException("輸入的是0!"); ??} ??else if(n == dd){ ???return n; ??} ??else{ ???throw new MyException("不是自然數(shù)"); ??} ?}? ?public static double testA(){?//判斷輸入的是不是數(shù)字 ??Scanner in = new Scanner(System.in); ??/**起初,把Scanner 的對(duì)象定義成了static 的類成員變量, ?? * 結(jié)果本方法中遞歸調(diào)用時(shí)出現(xiàn)循環(huán)錯(cuò)誤,即不能二次接收try中鍵盤輸入 ?? * 分析: ?? */ ??try{ ???d = in.nextDouble(); ???return d; ??}catch (InputMismatchException e) { ???System.out.println("請(qǐng)輸入數(shù)字:"); ???testA();?//能過catch捕獲,如果輸入的不是數(shù)字,則重新調(diào)用輸入方法,并要求重新輸入 ??}??//如果輸入的是數(shù)字,即可與double類型匹配,便不會(huì)報(bào)異常,可直接返回 ??return d; ?} }
總結(jié)
以上是生活随笔為你收集整理的判断是否为自然数java_java判断输入的是否是自然数的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【社招】蚂蚁面经
- 下一篇: 实例61:python