2016-07-26 33 views
0

我沒有收到錯誤在我的代碼在所有但它不是做什麼,我希望它 - 在所有。我知道有another question related to divisibility to 3 or 5,但我不認爲這個問題有關,因爲我們的編碼完全不同。我還發現,this answerthis other answeror even this answer不幫助我,無論是。我的Java程序正在測試如果整數可以被3或5整除,但只是打印每個整數,我該如何解決它?

無論如何,我試圖用一個簡單的布爾表達式,以確定是否一個表達式是真還是假,那麼如果它是真的還是假的打印不同的線路。預期的樣子我會得到的是這樣的:

3 is divisible by 3 
3 is not divisible by 5 
4 is not divisible by 3 
4 is not divisible by 5 
5 is not divisible by 3 
5 is divisible by 5 
and so on... 

不過,我得到這個:

3 is divisible by 3 
3 is not divisible by 3 
3 is divisible by 5 
3 is not divisible by 5 
and so on... 

最初的問題可以發現here.現在我只是在嘗試代碼,試圖讓自己更好地理解Java。我想從知道如何區分整數的整數開始,這些整數可以被不能被數字整除的整數整除,我認爲測試這種方法的最好方法是打印出來。我不知道我在這裏是否在正確的方向前進。任何人都可以給我指示我當前的代碼,或者一些提示,例如指向我將不得不使用的相應Java命令的鏈接。如果您發佈的代碼可行,那麼我可以看到我應該做什麼,那也沒問題,但請向我解釋一下。我不想只知道鍵入什麼,我正在努力爲編程解決問題奠定堅實的基礎。

很抱歉,如果這是一個可怕的問題,我非常新的總體規劃和我完全自學。給我一些指點,我絕對可以改變這個問題!

package multiplesof3and5; 

public class InitialProgram { 

    public static void main(String[] args) { 
     // TODO Auto-generated method stub 
     int integer1; 
     integer1 = 0; 
     boolean divisibleby3 = (integer1 % 3) == 0; 
     boolean divisibleby5 = (integer1 % 5) == 0; 

      for(integer1=0; integer1<1000; integer1++){ 
      if(divisibleby3 = true);{ 
       System.out.println(integer1 + " can be divided by 3");} 
      if(divisibleby3 = false);{ 
       System.out.println(integer1 + " cannot be divided by 3");} 
      if(divisibleby5 = true);{ 
       System.out.println(integer1 + " can be divided by 5");} 
      if(divisibleby5 = false);{ 
       System.out.println(integer1 + " cannot be divided by 5"); 
      } 

     } 



    } 
} 
+2

首先,你比較兩個等號,而不是一個 –

+0

值......因爲你要指定,而不是比較。 – PcAF

+3

另外,在if()後刪除所有分號,否則所有if都不起作用 – PcAF

回答

0

你detemining您整除你開始檢查它,號碼前加:

int integer1; 
integer1 = 0; 
boolean divisibleby3 = (integer1 % 3) == 0; 
boolean divisibleby5 = (integer1 % 5) == 0; 

    for(integer1=0; integer1<1000; integer1++){ 

你需要用integer1每次變化不斷更新你的可分性,像這樣:

for(integer1=0; integer1<1000; integer1++){   
    boolean divisibleby3 = (integer1 % 3) == 0; 
    boolean divisibleby5 = (integer1 % 5) == 0; 

剛纔注意到@ hexafraction的回答:

您還需要與==比較報表,現在你只是分配給布爾或truefalse,因爲你只用=

0

的問題在你的代碼是,你永遠改變你的布爾值。 它們始終保持不變,因爲它們僅基於初始整數1。 要解決這個問題,只需將兩個布爾型聲明移至for循環。 我在手機上,所以我不能寫下來/檢查它,但我很確定它會工作。 最好的問候, -Yuval蓋特

1

要啓動:

if(divisibleby3 = true);{ 

有流浪分號。其次,=是一項任務,但==應該用於比較,甚至不需要布爾值。使用此格式:

if(divisibleby3){ 

if(!divisibleby3){ // if not divisible by three 

其次,

boolean divisibleby3 = (integer1 % 3) == 0; 
boolean divisibleby5 = (integer1 % 5) == 0; 

需要是內環路,否則他們只計算一次(你只檢查0是否可以被三和五整除,並且一遍又一遍地使用該檢查的結果,而不是檢查每個我nteger)。可以不用if/if對,而是在每個循環中使用if/else兩次(如果可以被3整除即可打印,否則打印它不可用;用於5的可分性相同)。

最後,這是將工作代碼:

public static void main(String[] args) { 
     for(int integer1 = 0; integer1 < 1000; integer1++){ 
     boolean divisibleby3 = (integer1 % 3) == 0; 
     boolean divisibleby5 = (integer1 % 5) == 0; 
     if(divisibleby3) { 
      System.out.println(integer1 + " can be divided by 3"); 
     } else { 
      System.out.println(integer1 + " cannot be divided by 3"); 
     } 
     if(divisibleby5){ 
      System.out.println(integer1 + " can be divided by 5"); 
     } else { 
      System.out.println(integer1 + " cannot be divided by 5"); 
     } 

    } 



} 
相關問題