最近中文字幕高清中文字幕无,亚洲欧美高清一区二区三区,一本色道无码道dvd在线观看 ,一个人看的www免费高清中文字幕

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

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

?while(true){

? ? ? ? ?try{

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

? ? ? ? }catch(Exception e){

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

? ? ? ? continue;

? ? ? ? }

? ? ? ? ?break;

? ? ? ? ?}


正在回答

6 回答

這幾天沒看java啦,說實(shí)話,我對(duì)java也只是一個(gè)愛好者

給你看一個(gè)之前寫的

/**
* 判斷輸入玩家編號(hào)異常值
* @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("輸入異常,請(qǐng)輸入整數(shù)類型的ID");
? ?}
}


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

sadfiy 提問者

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

樓上說的對(duì),你只要改一行就好了

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


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

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

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

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

或者使用樓上的throw?

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

http://yifanck.cn/qadetail/199049

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

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

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

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

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

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

sadfiy 提問者

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

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

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

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

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

舉報(bào)

0/150
提交
取消

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

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

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

幫助反饋 APP下載

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

公眾號(hào)

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