2015-05-29 59 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