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
相关推荐
m4Rk_15 分钟前
【论文阅读】Agent 记忆机制(74):CompassMem——从相似度检索走向事件图上的记忆导航
论文阅读·人工智能·学习·开源·github
小李不想当小白23 分钟前
DMA直接存储器存取(STM32标准库学习笔记)
笔记·stm32·单片机·嵌入式硬件·学习·分享
2601_949950632 小时前
练题簿在线练题全流程:从资料导入到模拟考试与错题复盘
学习·考研·小程序·刷题·小程序推荐
2601_965384262 小时前
口腔黏膜清洁的工程化路径:从表面形貌表征到清洁策略匹配
经验分享·笔记
泡泡鱼(敲代码中)2 小时前
Python 容器类型学习笔记:列表、元组、字典、集合
开发语言·笔记·python·pycharm
别动我齐刘海3 小时前
ROS2 Jazzy + C++ 实战路线——基础学习2
c++·人工智能·vscode·python·学习·机器学习·机器人
Hotchip_MEMS4 小时前
传统咪头与MEMS硅麦:雾化器气流传感方案对比
人工智能·笔记·物联网·电脑·制造
志尊宝4 小时前
Vue3 零基础每日笔记(040):Vite 创建 Vue3 + TS 项目——企业标配从这一篇开始
笔记·vue·html·前端开发·软件开发
水云桐程序员5 小时前
量子力学概论,量子力学概念总结
笔记·科技·学习·量子计算
darin_ฅ( ̳• ◡ • ̳)ฅ15 小时前
【 Obsidian】2026版-Obsidian安装Automatic Table of Contents 插件一键生成文章目录
笔记