You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Go语言编写FizzBuzz逻辑代码运行持续报错问题咨询

Go 版FizzBuzz代码运行报错排查

错误原因

原代码存在2个会直接导致编译失败的语法错误,以及1个格式问题:

  • for循环缺少强制要求的代码块大括号。Go 语法不允许省略循环、分支语句的大括号,原代码for i:= 1; i<= 100; i++后直接接switch语句,没有用{}包裹循环逻辑,会直接触发语法报错。
  • switch结构写法不匹配。原代码使用switch i {的带表达式写法,该写法要求所有case后必须是和i类型一致的整数值,但实际case后写的是i%15 ==0这类布尔判断表达式,类型不匹配无法编译。
  • 代码缩进混乱、default关键字旁多了无意义空格,不符合Go官方编码规范,虽然不直接导致报错,但会影响可读性。

修正方案

  1. 给for循环补全大括号,将后续switch逻辑包裹在循环体范围内
  2. 将带表达式的switch i改为无表达式的switch结构,该结构下case后可直接写布尔判断逻辑,匹配首个返回true的分支执行,适配原有判断逻辑
  3. 统一调整代码缩进,修正格式问题

修正后可运行代码

package main

import "fmt"

func main() {
	for i := 1; i <= 100; i++ {
		switch {
		case i%15 == 0:
			fmt.Println("FizzBuzz")
		case i%3 == 0:
			fmt.Println("Fizz")
		case i%5 == 0:
			fmt.Println("Buzz")
		default:
			fmt.Println(i)
		}
	}
}

注:原代码中拼写为FizzyBuzz,上述代码调整为FizzBuzz题目标准拼写,如果你需要保留原有拼写,直接修改对应字符串内容即可,不影响代码运行。

内容的提问来源于stack exchange,提问作者Abdulwaarith

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 15:39:25