问题描述:
给定一个整数n,从1到n按照下面的规则打印每个数:
如果这个数被3整除,打印fizz
如果这个数被5整除,打印buzz
如果这个数同时被3和5整除,打印fizz,buzz
样例:
比如n=15,返回一个字符串数组
[ "1", "2", "fizz", "4", "buzz", "fizz", "7", "8", "fizz", "buzz", "11", "fizz", "13", "14", "fizz buzz" ]
实现:
1 /** 2 * 〈一句话功能简述〉<br> 3 * 〈使用switch替代if判断条件〉 4 * 5 * @author wangkai_wb 6 * @create 2020/6/28 7 * @since 1.0.0 8 * 给你一个整数n. 从 1 到 n 按照下面的规则打印每个数: 9 * 10 * 如果这个数被3整除,打印fizz. 11 * 如果这个数被5整除,打印buzz. 12 * 如果这个数能同时被3和5整除,打印fizz buzz. 13 */ 14 public class SwitchIf { 15 public static void main(String[] args) { 16 List<String> list = fizzBuzz(15); 17 System.out.println("list=["); 18 for (String s : list) 19 System.out.print(s+","); 20 System.out.println(); 21 System.out.println("]"); 22 } 23 24 /** 25 * 实现逻辑方法 26 * @param n 27 * @return 28 */ 29 public static List<String> fizzBuzz(int n){ 30 List<String> list = new ArrayList<>(); 31 for (int i=1;i<=n;i++){ 32 //通过Java的三目运算符,来判断整数的是那种情况; 33 int s = i%15 == 0 ? 3 : i%5 == 0 ? 2 : i%3 == 0 ? 1 : 4; 34 switch (s){ 35 case 1: 36 list.add("fizz"); 37 break; 38 case 2: 39 list.add("buzz"); 40 break; 41 case 3: 42 list.add("fizz buzz"); 43 break; 44 default: 45 list.add(i+""); 46 break; 47 } 48 } 49 return list; 50 } 51 }
测试结果: