Java 为什么我会得到错误的输出?

Java 为什么我会得到错误的输出?,java,output,division,Java,Output,Division,我对Java非常陌生,正在尝试编写一个简单的代码。以下是描述: 编写一个程序,提示用户输入数字X。打印 从1到X的数字。但是,代替4的倍数,打印“QQQ”。打印“七”代替7的倍数。如果一个数字可以被4和7整除,则打印“QQQ偶数”。这意味着如果我输入4,我的输出应该是1,2,3,(qqq),但我得到1(qqq),2(qqq),3(qqq),4(qqq)。。。。。谁能帮助我,让我知道我做错了什么?感谢您的帮助。比你强 public static void main(String args[]) {

我对Java非常陌生,正在尝试编写一个简单的代码。以下是描述: 编写一个程序,提示用户输入数字X。打印 从1到X的数字。但是,代替4的倍数,打印“QQQ”。打印“七”代替7的倍数。如果一个数字可以被4和7整除,则打印“QQQ偶数”。这意味着如果我输入4,我的输出应该是1,2,3,(qqq),但我得到1(qqq),2(qqq),3(qqq),4(qqq)。。。。。谁能帮助我,让我知道我做错了什么?感谢您的帮助。比你强

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");

    }
}
publicstaticvoidmain(字符串参数[])
{
//打印方法
System.out.println(“输入要打印的数字:”;
扫描仪输入=新扫描仪(System.in);
int x;
x=input.nextInt();
对于(int i=1;i替换

if (x % 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");
  }
}
替换

if (x % 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");
  }
}

这里的想法是使用从最具体到最不具体的if条件。在您的情况下,最具体的条件是一个4和7的除数,然后是4的除数,7的除数,最后是最不具体的一个,这意味着所有其他。如果您可以按此顺序排列if条件,您将得到结果

注意:关闭扫描仪或您打开的任何资源是一种良好的做法。:)

import java.util.Scanner;
公共类测试程序{
公共静态void main(字符串[]args){
System.out.println(“输入要打印的数字:”;
扫描仪输入=新扫描仪(System.in);
int x;
x=input.nextInt();

对于(int i=1;i这里的想法是使用从最具体到最不具体的if条件。在你的例子中,最具体的条件是一个4和7的除数,然后是4的除数,7的除数,最后是最不具体的一个,这意味着其他一切。如果你能按这个顺序排列你的if条件,你会得到结果

注意:关闭扫描仪或您打开的任何资源是一种良好的做法。:)

import java.util.Scanner;
公共类测试程序{
公共静态void main(字符串[]args){
System.out.println(“输入要打印的数字:”;
扫描仪输入=新扫描仪(System.in);
int x;
x=input.nextInt();

对于(int i=1;我感谢你的回复。我做了一些更改,现在,我的输出是1,2,3,4,QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ用4和7来搭配qqqq和7?我正在努力学习,所以如果你给我一个提示,我真的很感激。非常感谢你的解释!!!现在我更好地理解了它。它起了作用!!!非常感谢你的解释!!!现在我更好地理解了它。它起了作用!!!