第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定

請問下我下面的代碼為什么會陷入死循環(huán)

?while(true){

? ? ? ? ?try{

? ? ? ? id1=input.nextInt();

? ? ? ? }catch(Exception e){

? ? ? ? System.out.println("請輸入整數(shù)型數(shù)字");

? ? ? ? continue;

? ? ? ? }

? ? ? ? ?break;

? ? ? ? ?}


正在回答

6 回答

這幾天沒看java啦,說實話,我對java也只是一個愛好者

給你看一個之前寫的

/**
* 判斷輸入玩家編號異常值
* @return
* @throws Exception
*/
public int scanInt() throws Exception
{
? ?try {
? ? ? ?int in = console.nextInt();
? ? ? ?return in;
? ?} catch (Exception e) {
? ? ? ?console = new Scanner(System.in,"UTF-8");
? ? ? ?throw new Exception("輸入異常,請輸入整數(shù)類型的ID");
? ?}
}


0 回復(fù) 有任何疑惑可以回復(fù)我~
#1

sadfiy 提問者

非常感謝!
2017-07-10 回復(fù) 有任何疑惑可以回復(fù)我~

樓上說的對,你只要改一行就好了

id1=Integer.parseInt(input.nextLine());


0 回復(fù) 有任何疑惑可以回復(fù)我~

你定義了一個Scanner對象 input吧 如果你已經(jīng)賦值給他并且非int變量

? 循環(huán)再運行input.nextInt()方法就不再接收鍵盤輸入 ? ?而是直接返回上一次有異常的值,然后繼續(xù)異常 ? 會無限循環(huán)catch塊的代碼的 ?

簡單說解決方案 可以try內(nèi)部再新new一個Scanner對象

或者使用樓上的throw?

0 回復(fù) 有任何疑惑可以回復(fù)我~

http://idcbgp.cn/qadetail/199049

0 回復(fù) 有任何疑惑可以回復(fù)我~

continue是用來繼續(xù)循環(huán)啊,break是跳出循環(huán),如果用return的話后面程序就都不用執(zhí)行了。

0 回復(fù) 有任何疑惑可以回復(fù)我~

這個問題你斷點調(diào)試一下就會發(fā)現(xiàn),當(dāng)輸入不是整形,觸發(fā)異常的時候,continue一直都在循環(huán)中,

改成throw new Exception("輸入異常,請輸入整數(shù)類型數(shù)字");就好啦

0 回復(fù) 有任何疑惑可以回復(fù)我~
#1

sadfiy 提問者

請問為什么會一直都在循環(huán)而不能重新輸入id1,while的作用是進入下一次循環(huán)啊
2017-03-02 回復(fù) 有任何疑惑可以回復(fù)我~
#2

李東岳 回復(fù) sadfiy 提問者

簡單來說,你的continue和break在while循環(huán)中沒有起到作用,推薦你用return吧
2017-03-02 回復(fù) 有任何疑惑可以回復(fù)我~
#3

sadfiy 提問者 回復(fù) 李東岳

老哥,看2樓,剛點錯了。
2017-03-02 回復(fù) 有任何疑惑可以回復(fù)我~

舉報

0/150
提交
取消

請問下我下面的代碼為什么會陷入死循環(huán)

我要回答 關(guān)注問題
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號