程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> java中hasNextInt斷定後無窮輪回輸入else項的處理辦法

java中hasNextInt斷定後無窮輪回輸入else項的處理辦法

編輯:關於JAVA

java中hasNextInt斷定後無窮輪回輸入else項的處理辦法。本站提示廣大學習愛好者:(java中hasNextInt斷定後無窮輪回輸入else項的處理辦法)文章只能為提供參考,不一定能成為您想要的結果。以下是java中hasNextInt斷定後無窮輪回輸入else項的處理辦法正文


話不多說,下去就是干!

?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); 
//關於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項的處理辦法,願望對年夜家有所贊助,假如年夜家有任何疑問請給我留言,小編會實時答復年夜家的。在此也異常感激年夜家對網站的支撐!

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved