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
相关推荐
M78佐菲3 小时前
ARM学习笔记(1)
linux·arm开发·笔记·嵌入式硬件·学习
益达丫4 小时前
Socket编程揭秘:端口、IP与进程通信的底层逻辑
linux·笔记
无敌贵点大王6 小时前
RTThread学习记录11——RT-Thread 设备模型吃透:UART/ADC/PWM/PIN 到底有什么区别?
c语言·stm32·学习·链表
是翎7 小时前
深度长文|2026产品经理AI实践手册
人工智能·深度学习·学习·自然语言处理·数据挖掘
Linux-lucky7 小时前
32-38-Linux学习之旅之MySQL综合
linux·运维·学习·mysql·ubuntu
知识分享小能手8 小时前
C++ 学习教程,从入门到精通,C++ 入门知识 — 完整知识点(1)
开发语言·c++·学习
马可家的菠萝10 小时前
你收藏的资料,有多少真的被你第二次打开过?
笔记·知识管理·效率提升·个人知识库
小刘在重生~11 小时前
Java Lock 显式锁案例|ReentrantLock 解决多线程安全问题(超详细实战)
java·笔记·面试
职豚求职小程序11 小时前
中国人寿27秋招笔试[特殊字符]北森机考|备考攻略
笔记
江湖人称菠萝包11 小时前
【Qt】《Qt 5.9 C++开发指南》笔记-Chapter9-Qt Charts
笔记·qt·qt5