国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

java中hasNextInt判斷后無限循環輸出else項的解決方法

2019-11-26 13:44:38
字體:
來源:轉載
供稿:網友

話不多說,上來就是干!

?12345678910111213141516171819202122232425262728293031323334353637import 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); //關于hasNextInt判斷后無限循環輸出else項的解決辦法 String next; int i; while(true) {// Scanner sc = new Scanner(System.in); //第一種處理方法,把掃描器拿到里面來,每次循環都創建一個新的掃描器.else語句里直接提示輸入錯誤就好了 System.out.println("請輸入一個整數"); if (sc.hasNextInt()) { //如果通過使用 nextInt() 方法,此掃描器輸入信息中的下一個標記可以解釋為默認基數中的一個 int 值,則返回 true。 i = sc.nextInt(); //如果是輸入 22 33 會做兩次輸出 System.out.println(i); } else {// next = sc.next(); //第二種處理方法,把scanner緩存里的非int值接收掉// System.out.println("您輸入的是:" + next + ",請重新輸入"); //注意:next() 查找并返回來自此掃描器的下一個完整標記 例如輸入: aa bb cc 那么這里會先接收aa ,然后輸出aa //然后再while()循環,遇到if判斷緩存里的bb 確定不是整數后繼續走else語句輸出bb.同理輸出完cc才會停止 //如果輸入的是 aa 22 cc,那么先走else輸出aa, 再判斷出是22是整數走if語句,走完再次走cc才能結束 String nextLine = sc.nextLine(); //第三種處理方法,算了 還是接收一行吧! System.out.println(nextLine); //如果輸入 22 aaa 333 ccc 第一次會走if把22接收掉, //然后遇到aaa后走esls會把后面的整行都接收掉 //當然,正常情況下沒有sc.hasNextInt()這一個判斷的時候, //nextLine()會把整行都接收掉,而這里是因為被上面的nextInt()拿走了一個22 //所以還是看需要把.第一種雖然每次輸入都會創建一次Scanner對象,但是也算是一種合理的解決辦法! //總結:理解緩存,就會明白了! } } } }

以上所述是小編給大家介紹的java中hasNextInt判斷后無限循環輸出else項的解決方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對武林網網站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 遂平县| 七台河市| 汝州市| 湖南省| 龙里县| 都江堰市| 高雄市| 贵港市| 江达县| 邯郸县| 洛阳市| 喜德县| 海盐县| 贺州市| 武汉市| 长垣县| 荔浦县| 鱼台县| 定南县| 衡东县| 仁化县| 大同县| 育儿| 常德市| 宁波市| 苍溪县| 时尚| 工布江达县| 富蕴县| 丹阳市| 马鞍山市| 贵德县| 清涧县| 双流县| 屏南县| 昌乐县| 道孚县| 霍城县| 高州市| 陕西省| 长武县|