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

编写 FizzBuzz 程序

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

如果数字可被 3 整除,则输出 Fizz。

如果数字可被 5 整除,则输出 Buzz。

如果数字可同时被 3 和 5 整除,则输出 FizzBuzz。

如果前面的情况都不符合,则输出该数字。

尝试使用 switch 语句。

错误的例子

go 复制代码
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)
		}
	}
}

报错

.\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;

go 复制代码
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)
		}
	}
}

.\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省略条件

go 复制代码
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)
		}
	}
}

输出

go 复制代码
1
2
Fizz
4
Buzz
Fizz
7
8
Fizz
Buzz
11
Fizz
13
14
FizzBuzz
16
17
Fizz
19
Buzz
相关推荐
遇印记5 小时前
传输层,网络层
运维·服务器·网络·windows·学习
clorinda6 小时前
PyQt5学习:从界面搭建到与机器学习实战
学习
欣欣之王来了8 小时前
Vue3项目脚手架:Vite vs Vue CLI怎么选?
前端·学习·架构·项目·vue3教程
kaixin_啊啊8 小时前
【零基础学AI】第 7 章——让 AI 辅助学习和办公
人工智能·学习
信奥卷王8 小时前
[GESP202506 六级] 学习小组(含视频)
学习
启观川8 小时前
数据结构与算法-第 3 章 常用算法-贪心算法
数据结构·笔记·python·算法·贪心算法
宛 禾9 小时前
Qt 控件入门:QLabel 从拖拽到对象树,一篇讲透
c++·qt·学习
ab12376810 小时前
Spring WebSocket(STOMP)
笔记·websocket·springboot·stomp
无敌贵点大王10 小时前
嵌入式软件面试经(自用)
c语言·stm32·单片机·学习·mongodb·面试·职场和发展
Xudde.10 小时前
PwnLab: init 靶机渗透测试(Vulnhub Writeup)
笔记·学习·安全·web安全