为什么这段代码不起作用?嘶嘶声 JAVA

Why doesn't this code work? FizzBuzz JAVA

我无法获得"FizzBuzz"。无论输入什么,"FizzBuzz" 代码都不是 运行。我做错了什么?

public String[] fizzBuzz(int start, int end) {

int diff = end-start;
String[] array = new String[diff];

for (int i = 0; i < diff; i++) {
    if (start%3 == 0 && start%5 == 0) array[i] = "FizzBuzz";
    if (start%3 == 0 || start%5 == 0) {
        if (start%3 == 0) array[i] = "Fizz";
        if (start%5 == 0) array[i] = "Buzz";
    }
    else {
        array[i] = String.valueOf(start);
    }
    start++;
    }

    return array;
}

您的 if 语句中的逻辑有点混乱,使用您的代码作为起点,您必须这样做。

if (start%3 == 0 && start%5 == 0) {
    array[i] = "FizzBuzz";
}
else if (start%3 == 0 || start%5 == 0) {
    if (start%3 == 0) array[i] = "Fizz";
    if (start%5 == 0) array[i] = "Buzz";
}
else {
    array[i] = String.valueOf(start);
}
String s = "" + i;
if ((i % 3) == 0) {
    s += " Fizz";
}
if ((i % 5) == 0) {
    s+= " Buzz";
}
System.out.println(s);

这个放在循环中的代码片段将打印 Fizz、Buzz 和 Fizz Buzz on i 分别被 3、5 和 15 整除。

你应该试试这个。

    class FizzBuzz{
    public static void main(String args[]){
        int n = 100;
        for(int i=0;i<=n;i++){

            if((i % 3) == 0 && (i % 5) != 0){
                 System.out.println("Fizz");
            }
            else if((i % 5) == 0 && (i % 3) != 0){
                System.out.println("Buzz");
            }else if((i % 3) == 0 && (i % 5) == 0){
                System.out.println("FizzBuzz");
            }else{
                System.out.println(""+i);
            }

        }
    }
}