【发布时间】:2021-10-09 16:19:47
【问题描述】:
我有这个来自 codingBat https://codingbat.com/prob/p153059 的 fizzBuzz 练习,我的解决方法非常基本:
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”,但只有它们,然后如果我在底部放一个不同的 if,它将是唯一显示的,我似乎无法弄清楚为什么。
【问题讨论】: