go - 当我运行程序时,我只得到默认结果。即使输入数字不在该范围内
问题描述
程序应该根据输入的数字输出一个字符串。无论我输入什么,我总是得到默认情况
也尝试使用 if 条件。没用
package main
import (
"fmt"
)
func main() {
var grade int
fmt.Print("Input your grade:")
fmt.Scan(&grade)
gradeInLetters(grade)
}
const maxScore = 100
func gradeInLetters(s int) {
switch {
case maxScore < 100 && maxScore > 90:
fmt.Println("Grade A")
case maxScore < 90 && maxScore > 80:
fmt.Println("Grade B")
case maxScore < 80 && maxScore > 70:
fmt.Println("Grade C")
case maxScore < 70 && maxScore > 60:
fmt.Println("Grade D")
default:
fmt.Println("Grade F")
}
}
应该根据给定的等级输出字符串
解决方案
没有匹配的案例。maxScore
被定义为一个常数100
,最接近匹配的情况是:
case maxScore < 100 && maxScore > 90:
但是,当然,100并不是“小于 100”;它是100。您可能的意思是:
case maxScore <= 100 && maxScore > 90:
哪个会匹配,因为 100是“小于或等于”100。
更大的问题是您的输入作为参数传递给函数,s
在函数体的任何地方都没有使用;你所有的比较都是针对常量的maxScore
,这可能不是你想要的。你真正想要的是:
case s <= maxScore && s > 90:
......或类似的东西 - 目前还不清楚预期的目的maxScore
是什么。
推荐阅读
- mybb - 如何确定“MyBB 遇到内部 SQL 错误,无法继续”的原因
- typescript - NestJS - 在瞬态记录器中请求范围服务
- php - ACF 转发器字段未呈现行
- jvm - 有没有办法软更改 Java 版本?
- react-native - Expo SDK40 升级 TypeError: undefined is not an object (evalating 'inspect.custom')
- javascript - 使用带有列表 ITem 的 RN FlatList 的唯一“关键”道具错误
- php - PHP HTML 联系我们表单问题
- python - 如何在 3 路合并排序中修复超出索引的错误?
- alexa - 通过 Alexa 中的自定义技能播放来自默认音乐服务的音乐
- node.js - 使用 knex.fn.now() 自动添加日期的 knex 和时区