[英]Java fizzBuzz (excercise from CodingBat- Array2)
我有来自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 语句将检查所有条件,如果满足最后一个条件(底部 if),则它将打印其输出。
所以,你将不得不使用 if...else 语句。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.