y = y++;出錯(cuò),改為y++
創(chuàng)新互聯(lián)建站主要從事成都網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì)、外貿(mào)營銷網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)烏魯木齊,10多年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):18980820575
x = x++;出錯(cuò)。改為x++
區(qū)別就是y++ 和++y
你用 while(true)的話,JAVA編譯器認(rèn)為是死循環(huán),后面的
System.out.println(1);無法訪問,所以出錯(cuò)
而你用while(bool),編譯器并不會(huì)取變量bool的值,它是執(zhí)行時(shí)再取的,編譯器認(rèn)為它可能為false的,循環(huán)有可能不成立,所以不報(bào)錯(cuò)
當(dāng)某一掃描器拋出 InputMismatchException 時(shí),該掃描器不會(huì)傳遞導(dǎo)致該異常的標(biāo)記,因此可以通過其他某種方法來獲取或跳過它。
這是java API文檔中的原話。意思是說,如果nextInt方法沒有成功解析出一個(gè)整數(shù),那么你的輸入不會(huì)被忽略。因?yàn)樗蛟S能被其它格式解析。
那么你的程序中輸入了a后,出現(xiàn)異常,number被賦值100,開始下一次循環(huán),但這時(shí)數(shù)據(jù)緩沖區(qū)內(nèi)你上次輸入的a還在,并沒有清除,這時(shí)繼續(xù)解析a,還是錯(cuò)誤,于是這個(gè)過程就一直重復(fù)下去了。
現(xiàn)在你要改的是,出現(xiàn)錯(cuò)誤把這次的輸入清除,只要在catch中,加一句:input.next()就搞定了!