• golang学习笔记——编写 FizzBuzz 程序


    编写 FizzBuzz 程序

    首先,编写一个用于输出数字(1 到 100)的程序,其中有以下变化:

    如果数字可被 3 整除,则输出 Fizz。
    如果数字可被 5 整除,则输出 Buzz。
    如果数字可同时被 3 和 5 整除,则输出 FizzBuzz。
    如果前面的情况都不符合,则输出该数字。
    尝试使用 switch 语句。

    错误的例子

    package main
    
    import (
        "fmt"
    )
    
    func main() {
    
    	for i := 1 , i <= 20 ; i++ {
    		switch i {
    		case i%3==0 && i%5==0:
    			fmt.Println("FizzBuzz")
    		case i%3==0:
    			fmt.Println("Fizz")
    		case i%5==0:
    			fmt.Println("Buzz")
    		default:
    			fmt.Println(i)
    		}
    	}
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    报错
    .\hello.go:9:26: syntax error: cannot use i++ as value
    .\hello.go:9:29: syntax error: unexpected {, expected semicolon or newline
    .\hello.go:10:3: syntax error: unexpected switch, expected expression
    .\hello.go:10:3: syntax error: unexpected switch, expected { after for clause

    i := 1 ,改为i := 1;

    package main
    
    import (
        "fmt"
    )
    
    func main() {
    
    	for i := 1; i <= 20 ; i++ {
    		switch i {
    		case i%3==0 && i%5==0:
    			fmt.Println("FizzBuzz")
    		case i%3==0:
    			fmt.Println("Fizz")
    		case i%5==0:
    			fmt.Println("Buzz")
    		default:
    			fmt.Println(i)
    		}
    	}
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    .\hello.go:11:8: cannot convert i % 3 == 0 && i % 5 == 0 (untyped bool value) to type int
    .\hello.go:13:8: cannot convert i % 3 == 0 (untyped bool value) to type int
    .\hello.go:15:8: cannot convert i % 5 == 0 (untyped bool value) to type int

    把switch后面的i去掉,可参考switch省略条件

    package main
    
    import (
        "fmt"
    )
    
    func main() {
    
    	for i := 1; i <= 20 ; i++ {
    		switch {
    		case i%3==0 && i%5==0:
    			fmt.Println("FizzBuzz")
    		case i%3==0:
    			fmt.Println("Fizz")
    		case i%5==0:
    			fmt.Println("Buzz")
    		default:
    			fmt.Println(i)
    		}
    	}
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    输出

    1
    2
    Fizz
    4
    Buzz
    Fizz
    7
    8
    Fizz
    Buzz
    11
    Fizz
    13
    14
    FizzBuzz
    16
    17
    Fizz
    19
    Buzz
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
  • 相关阅读:
    ansible-复制模块
    设计-命令模式
    数据库基础篇一
    小程序使用echarts(超详细教程)
    【愚公系列】2022年09月 微信小程序-WebGL纹理材质的使用
    [前端基础] JavaScript 基础篇(上)
    ios-mfi_蓝牙部分翻译
    分布式任务调度Schedulerx2.0 Map模型作业执行流程
    【C++】Ubuntu18.04安装C++的IDE——KDevelop
    【阿里云盘怎么】没办法分享压缩文件?
  • 原文地址:https://blog.csdn.net/e891377/article/details/134452086