2016-02-13 66 views
0

我工作的問題是,如何獲取代碼繼續提示下一個號碼的用戶?

「寫入是確定,對於一對整數的倍數,第二整數是否 是第一的倍數。所述的方法,將需要2 整數參數並返回true,如果第二個是首先是 的倍數,否則返回false [提示:使用餘數運算符] 將此方法合併到輸入一組整數對(一次一對)的應用程序中,並確定每對中的第二個值是否是第一個的倍數。「

現在,我寫了一個程序,有點有用,但我似乎不能讓它繼續前進。當按下0時它應該停止,但它不會超過第一個整數。

當我改變while(first!= 0)時,我確實讓它運行了一個循環;到while(first == 0);.

我只是留下了一些東西或有完全錯誤的東西嗎?任何信息都會有幫助。

這裏是我的代碼

import java.util.Scanner; 

public class Multiples 
{ 
    public static void main(String[] args) 
    { 
     System.out.println("Len Rogers - Programming Assignment 4\n"); 

     Scanner input = new Scanner(System.in); 

     int first; // first number 
     int second; // second number 

     System.out.print("Enter first number (0 to exit): "); 
     first = input.nextInt(); 

     // set 0 as the sentinel value, since we cannot divide by 0 
     while (first != 0); 
     { 

      System.out.print("Enter second number: "); 
      second = input.nextInt(); 

      if (ismultiple(first, second)) 
       System.out.printf("true\n\n", second, first); 
      else 
       System.out.printf("false\n\n" , second, first); 

      System.out.print("Enter first number (0 to exit): "); 
      first = input.nextInt(); 
     } // end while loop 
    } // end main 

    // determin if the firest integer is a multiple of the second 
    public static boolean ismultiple(int firstNumber, int secondNumber) 
    { 
     return secondNumber % firstNumber == 0; 
    } // end method multiple 
} // end class Multiples 
+0

這與NetBeans 8有什麼特別的關係? –

+0

提示:在輸入input.nextInt()或input.next()(或類似的)後,你應該總是有一個後面的調用'input.nextLine()',因爲後者不消耗掛起的換行符進入控制檯。 – Seelenvirtuose

+3

問題是分號(終結者)剛過while.Remove它,它會工作 –

回答

0

我覺得

do { 

} while(first != 0) 

是您正在尋找的,因爲它會阻止您需要有獨立的代碼讀取第一個輸入迴路

如果你使用readline,然後檢查你的閱讀可以被轉換爲int,否則退出你應該能夠得到你想要的。