2015-10-25 75 views
1

我不明白爲什麼我的if-else語句不能正常工作。這是我到目前爲止有:需要一個程序,要求用戶輸入2個整數,檢查是否第二個數字是第一個數字的倍數

import java.util.Scanner; 
public class multiple { 
    public static void main (String[] args){ 
     Scanner input = new Scanner (System.in); 
     int x = 4; 
     int y = 3; 
     int multiple = y % x; 
     while (multiple != 0){ 
      System.out.println("Enter two integers: "); 
      x = input.nextInt(); 
      y = input.nextInt(); 
      if (multiple != 0) 
       System.out.println("Oops, sorry! The second integer is NOT a multiple of the first integer."); 
      else 
       System.out.println("Good Job! " + y + " is a multiple of " + x + "!"); 
     }  
    } 
} 

回答

0

每次更改x和y時,都必須更新多個變量。現在你每次都檢查4%3是否爲0。

換句話說,更新x和y後,將倍數設置爲y%x。

+0

然後我不會失去我的while語句嗎?我需要它繼續重複,直到用戶輸入2個整數倍數 – Mel0927

+0

謝謝!有效! – Mel0927

1

你不採取用戶input.Change你的代碼像this.it應該工作後更新multiple

import java.util.Scanner; 
public class multiple { 
public static void main (String[] args){ 
    Scanner input = new Scanner (System.in); 
    int x = 4; 
    int y = 3; 
    int multiple = y % x; 
    while (multiple != 0){ 
System.out.println("Enter two integers: "); 
    x = input.nextInt(); 
    y = input.nextInt(); 
    multiple = y % x; 
     if (multiple != 0) 
      System.out.println("Oops, sorry! The second integer is NOT a multiple of the first integer."); 
     else 
      System.out.println("Good Job! " + y + " is a multiple of " + x + "!"); 
    }  
} 

} 
+0

確定那是在「while」語句之後重複變量變化以繼續循環的含義嗎? – Mel0927

+0

yes似乎是這樣。對於每個輸入集,您需要計算並重置變量'multiple'。 –

+0

我一直在閱讀,但沒有重複正確的代碼聲明。謝謝 – Mel0927

0

要添加到什麼王子和playitright說,如果由用戶輸入的數字不等於零我會問到

  1. 檢查。這非常重要,否則可能會遇到運行時異常。
  2. 你正在嘗試y%x而不是x%y。

因爲你選擇的數據類型都是int,所以x%y也應該被檢查。

假設,

X = 3和y = 6,你的解決方案的工作,但如果我們只是扭轉爲x = 6,Y = 3的值,輸出是不正確的。

+0

如果我想第二個整數作爲第一個整數的倍數進行測試,我不會把它保留爲「Y%X」?? – Mel0927

+0

如果用戶輸入6和3,3是6(6 X 0.5)= 3的倍數,但是如果您只考慮整數,那麼我認爲只需要不等於零。 –

相關問題