【发布时间】:2022-01-23 01:39:47
【问题描述】:
package main
import "fmt"
func main() {
var age int
fmt.Scanf("%d", &age)
// Code your switch or if...else-if statement here.
switch age {
case 1:
age <= 14
fmt.Println("Toy Story 4")
case 2:
age <= 18
fmt.Println("The Matrix")
case 3:
age <= 25
fmt.Println("John Wick")
case 4:
age <= 35
fmt.Println("Constantine")
case 5:
age > 35
fmt.Println("Speed")
default:
fmt.Println("Error: Unknown age")
}
}
我在 IDE 中看到 scanf 的黄色标记,表示未处理的错误。此外,所有案例的第一行都标记为红色,以防止编译。我得到的错误是age <= 14 is evaluated, but not used。所有的陈述都是如此。我在网上搜索并查看了示例,据我所知,代码是,如材料和示例所述。这是 Go Land (JetBrains) 的屏幕截图:
有人有想法吗?另外,如果您回答,请记住,这是 Go 课程的一课,我必须使用 scanf。我可以将开关更改为 else if,这可能会解决问题,但我有点好奇,为什么会发生这种情况以及如何解决它。 :)
【问题讨论】:
-
欢迎您!请确保您参加了这次旅行 (go.dev/doc/tutorial/getting-started)。
-
您可能想查看Switch Statements(或Effective Go)以及基本语法。比较需要在 case 表达式中。
-
当我们这样做的时候,please do not post screenshots of text。您想向我们展示的所有相关文本都可以作为文本复制并粘贴到问题的文本中。
-
是的,我们讨厌在 SO 将文本作为屏幕截图。没有他们,你的问题是清楚而完整的。与其将编辑器屏幕截图带入其中,您将来可能会使用 Go Playrgound 来分享行为(go.dev/play),但就像我说的那样,这个问题写得很好,没有屏幕截图
-
感谢所有这些 cmets!我对截图感到抱歉,并将对其进行编辑。至于问题:我是 JetBrains Academy 的测试员,这是一个新话题。由于我关注 Go 有一段时间了,所以我同意测试它,然后从那里开始。问题在于他们的理论。他们的代码说明是错误的。所以这就是为什么我无法弄清楚。 :) 感谢收获。
标签: go switch-statement conditional-statements