【问题标题】:Why doesn't this code work? FizzBuzz JAVA为什么这段代码不起作用? FizzBu​​zz JAVA
【发布时间】:2016-02-13 20:45:23
【问题描述】:

我听不到“FizzBu​​zz”。无论输入什么,“FizzBu​​zz”代码都不会运行。我做错了什么?

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 应该是else if(因为当两者都为真时,任何一个都为真)。

标签: java fizzbuzz


【解决方案1】:

你的 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);
}

【讨论】:

    【解决方案2】:
    String s = "" + i;
    if ((i % 3) == 0) {
        s += " Fizz";
    }
    if ((i % 5) == 0) {
        s+= " Buzz";
    }
    System.out.println(s);
    

    这个代码 sn-p 放置在一个循环中将打印 Fizz、Buzz 和 Fizz Buzz on i 分别可被 3、5 和 15 整除。

    【讨论】:

      【解决方案3】:

      你应该试试这个。

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

      【讨论】:

      • 不错的代码,但我不知道为什么它不会失败的细节。您可以编辑答案并添加说明吗?
      • 对不起,我的朋友,我没有明白你的意思。你让我解释一下代码吗?或者我应该在哪个术语中添加描述。
      猜你喜欢
      • 2016-01-15
      • 1970-01-01
      • 1970-01-01
      • 2010-09-18
      相关资源
      最近更新 更多