首页 > 解决方案 > Java fizzBu​​zz(来自 CodingBat-Array2 的练习)

问题描述

我有这个来自codingBat https://codingbat.com/prob/p153059的fizzBu​​zz 练习,我的解决思路非常基本:

public String[] fizzBuzz(int start, int end) {
  
  int n=end-start;
  
  String[] array=new String[n];
  
  for(int i=0;i<n;i++){
    
    if(((start+i) % 3 ==0) && ((start+i) % 5 ==0)) array[i]="FizzBuzz";
    if((start+i) % 5 ==0)  array[i]="Buzz";
    if((start+i) % 3 ==0)  array[i]="Fizz";
    
    
    else{
      array[i]=String.valueOf((start+i));
    }
  }
  
  return array;
  
}

我不明白为什么在 for 循环中的 if 部分只读取底部 if,例如,所有如上所示为 3 的倍数的数字将显示为“Fizz”,但只有它们,然后如果我放一个不同的如果在底部,它将是唯一显示的,我似乎无法弄清楚为什么。

标签: javafizzbuzz

解决方案


您仅使用将检查所有条件的 if 语句,如果满足最后一个条件(底部 if),则它将打印其输出。

因此,您将不得不为此使用 if...else 语句。


推荐阅读