java中hasNextInt判斷后無限循環(huán)輸出else項(xiàng)的解決方法
話不多說,上來就是干!
?12345678910111213141516171819202122232425262728293031323334353637
import java.util.Scanner; public class Test_hasNextInt {
/** * @param args */
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
//關(guān)于hasNextInt判斷后無限循環(huán)輸出else項(xiàng)的解決辦法
String next;
int i;
while(true) {//
Scanner sc = new Scanner(System.in);
//第一種處理方法,把掃描器拿到里面來,每次循環(huán)都創(chuàng)建一個(gè)新的掃描器.else語句里直接提示輸入錯(cuò)誤就好了
System.out.println("請輸入一個(gè)整數(shù)");
if (sc.hasNextInt()) { //如果通過使用 nextInt() 方法,此掃描器輸入信息中的下一個(gè)標(biāo)記可以解釋為默認(rèn)基數(shù)中的一個(gè) int 值,則返回 true。
i = sc.nextInt();
//如果是輸入 22 33 會做兩次輸出
System.out.println(i);
} else {//
next = sc.next();
//第二種處理方法,把scanner緩存里的非int值接收掉//
System.out.println("您輸入的是:" + next + ",請重新輸入");
//注意:next() 查找并返回來自此掃描器的下一個(gè)完整標(biāo)記 例如輸入: aa bb cc 那么這里會先接收aa ,然后輸出aa
//然后再while()循環(huán),遇到if判斷緩存里的bb 確定不是整數(shù)后繼續(xù)走else語句輸出bb.同理輸出完cc才會停止
//如果輸入的是 aa 22 cc,那么先走else輸出aa, 再判斷出是22是整數(shù)走if語句,走完再次走cc才能結(jié)束
String nextLine = sc.nextLine();
//第三種處理方法,算了 還是接收一行吧!
System.out.println(nextLine);
//如果輸入 22 aaa 333 ccc 第一次會走if把22接收掉,
//然后遇到aaa后走esls會把后面的整行都接收掉
//當(dāng)然,正常情況下沒有sc.hasNextInt()這一個(gè)判斷的時(shí)候,
//nextLine()會把整行都接收掉,而這里是因?yàn)楸簧厦娴膎extInt()拿走了一個(gè)22
//所以還是看需要把.第一種雖然每次輸入都會創(chuàng)建一次Scanner對象,但是也算是一種合理的解決辦法!
//總結(jié):理解緩存,就會明白了!
}
}
}
}
以上所述是小編給大家介紹的java中hasNextInt判斷后無限循環(huán)輸出else項(xiàng)的解決方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時(shí)回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
java開發(fā)主流定時(shí)任務(wù)解決方案全橫評詳解
這篇文章主要為大家介紹了java開發(fā)主流定時(shí)任務(wù)解決方案全橫評詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-09-09
Mybatis Generator自動生成對應(yīng)文件的實(shí)現(xiàn)方法
這篇文章主要介紹了Mybatis Generator自動生成對應(yīng)的文件的實(shí)現(xiàn)方法,需要的朋友可以參考下2017-09-09
Java多線程編程之ThreadLocal線程范圍內(nèi)的共享變量
這篇文章主要介紹了Java多線程編程之ThreadLocal線程范圍內(nèi)的共享變量,本文講解了ThreadLocal的作用和目的、ThreadLocal的應(yīng)用場景、ThreadLocal的使用實(shí)例等,需要的朋友可以參考下2015-05-05
淺析Spring的事務(wù)實(shí)現(xiàn)原理
這篇文章主要為大家詳細(xì)介紹了Spring中事務(wù)實(shí)現(xiàn)的原理,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)Spring有一定的幫助,需要的可以參考一下2022-11-11
SpringBoot中自定義注解實(shí)現(xiàn)控制器訪問次數(shù)限制實(shí)例
本篇文章主要介紹了SpringBoot中自定義注解實(shí)現(xiàn)控制器訪問次數(shù)限制實(shí)例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2017-04-04
idea全局搜索快捷鍵超詳細(xì)總結(jié)(推薦!)
在實(shí)際開發(fā)中項(xiàng)目會非常多,如何在項(xiàng)目中快速定位,你說需要找到的類或方法,可以利用idea的全局搜索功能,下面這篇文章主要給大家分享介紹了關(guān)于idea全局搜索快捷鍵超詳細(xì)總結(jié)的相關(guān)資料,需要的朋友可以參考下2023-01-01
Java?web開發(fā)環(huán)境的搭建超完整步驟
這篇文章主要介紹了如何安裝和配置IDEA?2020.1.1?X64版本軟件,包括創(chuàng)建Java?Web項(xiàng)目、配置Tomcat、部署Tomcat?API以及創(chuàng)建和配置Servlet,通過這些步驟,新手可以快速搭建起Javaweb開發(fā)環(huán)境,需要的朋友可以參考下2024-11-11

