【问题标题】:Java fizzBuzz (excercise from CodingBat- Array2)Java fizzBu​​zz(来自 CodingBat-Array2 的练习)
【发布时间】:2021-10-09 16:19:47
【问题描述】:

我有这个来自 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”,但只有它们,然后如果我在底部放一个不同的 if,它将是唯一显示的,我似乎无法弄清楚为什么。

【问题讨论】:

    标签: java fizzbuzz


    【解决方案1】:

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

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

    【讨论】:

    • 非常感谢您的帮助,现在它为什么只打印底部是有道理的:)
    猜你喜欢
    • 1970-01-01
    • 2015-03-01
    • 2016-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-14
    • 1970-01-01
    • 2013-12-16
    相关资源
    最近更新 更多