2015-05-29 57 views
1

我對Java很新,想寫一個簡單的代碼。這裏是描述: 編寫一個程序,提示用戶輸入一個數字X.打印從1到X的 數字。但是,代替4打印「qqqq」的倍數。取代7的倍數,打印「七」。如果一個數字可以被4和7打印「qqqqseven」整除。這意味着如果我輸入4,我的輸出應該是1,2,3,(qqqq),...但是我得到1(qqqq),2(qqqq),3(qqqq),4(qqqq)....任何人都可以幫助我,讓我知道我在做什麼錯?任何幫助表示讚賞。比你。爲什麼我得到錯誤的輸出?

public static void main(String args[]) 
{ 

    //Print Method 
    System.out.println("Enter number upto which you want to print: "); 
    Scanner input = new Scanner(System.in); 
     int x; 
     x = input.nextInt(); 


    for(int i=1; i <= x; i++) 
    { 
     System.out.println(i); 

    //if x is multiples of 4 
    if (x % 4 == 0) 
      System.out.println("qqqq"); 
    //if x is multiples of 7 
    if (x % 7 == 0) 
      System.out.println("seven"); 
    //if x is divisible by 4 and 7 
    if (x % 4 == 0 && x % 7 == 0) 
      System.out.println("qqqqseven"); 

    } 
} 

}

回答

1

這裏的想法是使用從最具體到最不具體的if條件。在你的情況下,最具體的條件是4和7的除數,其次是除數4,除數7,最後是最不具體的一個,這意味着所有其他事情。如果你可以按照這個順序排列你的條件,你會得到結果。

注意:關閉掃描儀或您打開的任何資源是一種很好的做法。 :)

import java.util.Scanner; 

public class TestProgram { 

    public static void main(String[] args) { 
     System.out.println("Enter number upto which you want to print: "); 
     Scanner input = new Scanner(System.in); 
     int x; 
     x = input.nextInt(); 

     for (int i = 1; i <= x; i++) { 
      if(i%4 == 0 && i%7 == 0) { 
       System.out.println("qqqqseven"); 
      } else if(i%4 == 0) { 
       System.out.println("qqqq"); 
      } else if(i%7 == 0){ 
       System.out.println("seven"); 
      } else { 
       System.out.println(i); 
      } 
     } 
     input.close(); 
    } 
} 
+0

非常感謝您的解釋!現在我更瞭解它。和它工作! – Hr0419

3

更換

if (x % 4 == 0) 

隨着

if (i % 4 == 0) 

同樣做的%

的其他事件

要獲取的28多個正確的輸出,你會我需要修改你的代碼到這裏:

if (i % 4 == 0 && i % 7 == 0) { // if i is a multiple of 28 (of both 4 & 7) 
    System.out.println("qqqqseven"); 
} 
else { 
    if (i % 4 == 0) { // if i is multiples of 4 
     System.out.println("qqqq"); 
    } 
    else if (i % 7 == 0) { // if i is multiples of 7 
     System.out.println("seven"); 
    } 
} 
+0

謝謝您的迴應。我做了改變,現在,我的輸出是1,2,3,4,qqqq,5,6,7,7 ....我怎樣才能用qqqq和7替換4和7?我想學習如果你給我一個提示,我真的很感激它。 – Hr0419