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
相关推荐
AI_零食12 分钟前
鸿蒙的flutter框架表达:生命律动系统
学习·flutter·ui·华为·harmonyos·鸿蒙
深蓝海拓14 分钟前
PyQt5/PySide6的moveToThread:移动到线程
笔记·python·qt·学习·pyqt
AI_零食15 分钟前
鸿蒙跨端框架 Flutter 学习 Day 6:Future 在 UI 渲染中的心跳逻辑
学习·flutter·ui·华为·harmonyos·鸿蒙
科技AI训练师16 分钟前
环保设备厂的转型之路:CAXA助力污水处理设备升级
科技·学习·制造
Xudde.22 分钟前
在网络空间安全专业大二上学期个人经历
笔记·学习·安全
wdfk_prog27 分钟前
[Linux]学习笔记系列 -- [drivers][base]dd
linux·笔记·学习
ydp1575542317643 分钟前
换热器笔记整理
笔记
victory043144 分钟前
大模型后训练部分 强化学习学习路径
学习
林智勇(小学信息技术高级教师)1 小时前
学习 Scratch 最好的方式
学习·scrapy
宵时待雨1 小时前
数据结构(初阶)笔记归纳6:双向链表的实现
c语言·开发语言·数据结构·笔记·算法·链表