2014-09-01 79 views
-1

因此,我正在爲學校製作一個小程序,並且在之前的任務中,我們必須創建一個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值永遠不會被使用? :)

回答

1

你不需要ABC ==真,如果沒有鍵入時,你可以break或者你可以把它等同於假

while(abc){ 
    try{ 
     System.out.println("do you like me?") 
     bucket = keys.nextLine(); *//user types in some string..* 

     if(bucket.equals("yes")){ 
      System.out.println("Yay! I love you too! :P"); 
     } 
     else { 
      abc = false; 
     } 
     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; 
     } 
    } 
}