因此,我正在爲學校製作一個小程序,並且在之前的任務中,我們必須創建一個try catch語句,以便在程序崩潰時不會完全崩潰,如果這是有道理的...嘗試將catch嵌套在While語句中,清除掃描器
和我正在工作的這個任務,這不是一個需求,但我真的想找到一個正確的方法來做到這一點,到目前爲止,我創造了一個東西親屬到下面的代碼。
我的問題在於,該掃描儀記住什麼寫在最後輸入,所以當有人寫的東西,崩潰,並設置再次while循環,第一個問題被再次回答這個事實..
所以我有點想知道在程序再次返回到代碼頂部之前是否有辦法「清除」掃描器?
我發現文章的人問這個問題之前,他們似乎得到的答案類似「不,那是不可能的。」
,但我想有一種方法可以解決此問題?
我想這可能是我設置的代碼,這樣..
同樣的方式,我會再次提到這是我的java類的功課的一部分;核心程序本身就是這樣,但是試圖抓住這一部分,特別是重新啓動它不是。但我總是渴望更多地瞭解這個:)
例
Scanner keys = new Scanner(System.in)
Boolean abc = true;
String bucket;
int numbers = 0;
while(abc == true){
abc = false;
try{
System.out.println("do you like me?")
bucket = keys.nextLine(); *//user types in some string..*
if(bucket.equalsIgnoreCase("yes")){
System.out.println("Yay! I love you too! :P");
}
else if(bucket.equalsIgnoreCase("no")){
System.out.println("awww..");
}
System.out.println("How much money do you have on you?");
numbers = keys.nextInt(); *//user types in **ex**. "no"*
System.out.println(numbers);
}
catch(Exception a){
abc == true;
}
finally{
if(abc == false){
keys.close;
}
}
}
//當用戶通過在INT框中鍵入「不」崩潰的程序,該程序將其捕獲並啓動while循環,然後它讀取「no」,因爲沒有從scanner變量中取出這個值,然後「你喜歡我」問題自動得到答案..所以如果我有一個「其他」的東西不是是或否,那麼這將是自動選擇什麼..
我真的希望你們(和女孩?)可能知道somethi ng,或者看到我的邏輯中可能會修復此問題的一個嚴重缺陷:)
謝謝您尋找並幫助我解決這個問題! :D
也作爲旁註問題;你知道爲什麼人們傾向於使用「catch(Exception e)」和「e」作爲Exception的「名稱」嗎? :)只是好奇..
編輯:所以我想通了,我可以放在一個字符串清理;然後一個cleanUp = keys.nextString();在catch塊..
立即出現新問題:我應該做一些關於警告編譯器給我關於cleanup值永遠不會被使用? :)