2016-08-31 73 views
0
import java.util.Scanner; 
import static java.lang.System.out; 

public class TestingStuf2 { 

    public static void main(String[] args) { 
     Scanner keyboard = new Scanner(System.in); 

      out.println("Enter a number"); 

      int number = keyboard.nextInt(); 

     while (number < 10) { 
      if (number < 10) { 
       out.println("This number is too small."); 
       keyboard.nextInt(); 
      }else{ 
       out.println("This number is big enough."); 
      }  
     } 
     keyboard.close(); 
    } 

} 

我只是有點麻煩循環這段代碼。我剛開始學習Java,這些循環一直困擾着我。當我運行這個程序時,如果輸入的數字小於10,我會看到「」這個數字太小「的消息,然後它允許我再次輸入,但是如果我輸入一個大於10的數字,如果我輸入的第一個數字大於10,我根本沒有收到消息,程序剛剛結束,爲什麼會發生這種情況?我怎樣才能讓循環在我的Java程序中工作?

+1

你解釋了你得到的行爲 - 它與你的期望有什麼不同? – Blorgbeard

+0

更清楚發生什麼事情與您預期發生的事情。正如所寫,很難回答你的問題。 – nhouser9

回答

3

我想你忘記了重新指定number變量。之所以

但是,如果我再鍵入一個數字比10我得到同樣的 消息更大。

請嘗試下面的代碼。感謝@ Dev.Joel的評論。我已經修改了循環到do-while以更好地適應這種情況。

import java.util.Scanner; 
import static java.lang.System.out; 

public class TestingStuf2 { 

    public static void main(String[] args) { 
     Scanner keyboard = new Scanner(System.in); 

      out.println("Enter a number"); 

      int number = keyboard.nextInt(); 

     do{ 
      if (number < 10) { 
       out.println("This number is too small."); 
       /* 
       * You should reassign number here 
       */ 
       number = keyboard.nextInt(); 
      }else{ 
       out.println("This number is big enough."); 
      }  
     }while(number < 10); 
     keyboard.close(); 
    } 

} 

我建議您使用break point來調試您的問題。以您的情況爲例,您將2分配給number,並打印「此號碼太小」。接下來,您使用keyboard.nextInt()讓用戶輸入另一個int。但是,數字仍爲2.因此,無論您此次輸入什麼內容,條件number < 10都成立,並且"This number is too small"將再次打印。

+1

如果你先輸入一個更高的數字10永遠不會輸入while –

+0

@ Dev.Joel謝謝你的提醒。我將編輯答案。 – Gearon

相關問題