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

    }
}


}

最佳答案

这里的想法是使用从最具体到最不具体的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();
    }
}

08-16 08:42