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
相关推荐
_落纸1 天前
三大基础无源电子元件——电阻(R)、电感(L)、电容(C)
笔记
Alice-YUE1 天前
【CSS学习笔记3】css特性
前端·css·笔记·html
2303_Alpha1 天前
SpringBoot
笔记·学习
萘柰奈1 天前
Unity学习----【进阶】TextMeshPro学习(三)--进阶知识点(TMP基础设置,材质球相关,两个辅助工具类)
学习·unity
沐矢羽1 天前
Tomcat PUT方法任意写文件漏洞学习
学习·tomcat
好奇龙猫1 天前
日语学习-日语知识点小记-进阶-JLPT-N1阶段蓝宝书,共120语法(10):91-100语法+考え方13
学习
向阳花开_miemie1 天前
Android音频学习(十八)——混音流程
学习·音视频
工大一只猿1 天前
51单片机学习
嵌入式硬件·学习·51单片机
c0d1ng1 天前
量子计算学习(第十四周周报)
学习·量子计算
Hello_Embed1 天前
STM32HAL 快速入门(二十):UART 中断改进 —— 环形缓冲区解决数据丢失
笔记·stm32·单片机·学习·嵌入式软件