亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

幫我看一下哪里出錯了

幫我看一下哪里出錯了

予別她 2017-08-06 11:10:41
如果去掉13,14,15行(就是判斷輸入的數字是否大于0的那幾行代碼),我輸入1進去就會打印出1但是不去掉13,14,15行的話,需要輸入兩次1,才會打印出結果,不知道是為什么public?static?void?main(String[]?args)?{ ????int?n?=?0; ????boolean?keeprunning?=?true; ???? ????System.out.println("請輸入一個整數:"); ????while(keeprunning)?{ ????????Scanner?input?=?new?Scanner(System.in); ????????//判斷輸入的是不是一個整數 ????????if(!input.hasNextInt?||?input?==?null)?{ ????????????System.out.println("您輸入的不是一個整數,請重新輸入:"); ????????} ????????//判斷輸入的數字是否大于0 ????????else?if(input.nextInt()?<?0)?{ ????????????System.out.println("請重新輸入一個大于0的整數:"); ????????} ????????else?{ ????????????n?=?input.nextInt(); ????????????keeprunning?=?false; ????????} ????} ???? ????System.out.println(n); }
查看完整描述

2 回答

?
輕浮與傲慢

TA貢獻9條經驗 獲得超3個贊

  1. 第9行hasNextInt()方法忘寫括號了

  2. 第9行就進行過一次輸入判斷但是你只是把輸入結果進行是否是整數的判斷,第13行也是只是對輸入的數進行判斷是否小于0并沒有把值存在變量里,所以你第17行又輸入了一次進行判斷,整個流程等同于第一次輸入一個數進行判斷(if)輸入是否是整數(else if)輸入是否大于0(else)前兩個條件均滿足再輸入一個數將keepruning賦值為false然后挑出循環輸出n

  3. 你直接輸入一個數使用nextInt()方法用try-catch包裝一下,如果輸入不是整形它會拋出一個異常你可以在catch里輸出一句話這樣就行了,你這樣寫太亂毫無邏輯可言

查看完整回答
1 反對 回復 2017-08-06
  • 2 回答
  • 0 關注
  • 1247 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號