有人可以帮我调试这个程序,只在每个输入上处理else部分.这是一个评分学生的程序.学生输入标记并显示成绩
func main(){
var x int
fmt.Println("Enter your marks")
fmt.Scanf("%d",&x)
if (100 <= x) && (x<=75){
fmt.Println("D1")
}else if (74 <= x)&&(x <= 70){
fmt.Println("D2")
}else if (69 <= x )&&(x<=65){
fmt.Println("C3")
}else if (64 <= x)&&(x <= 60){
fmt.Println("C4")
}else if (59 <= x)&&(x <= 55){
fmt.Println("C5")
}else if (54 <= x)&&( x<= 50){
fmt.Println("C6")
}else if (49 <= x )&&(x<= 45){
fmt.Println("P7")
}else{
fmt.Println("Work harder")
}
}
Run Code Online (Sandbox Code Playgroud)
Den*_*ret 22
你有一个逻辑问题.
更改
if (100 <= x) && (x<=75){
Run Code Online (Sandbox Code Playgroud)
至
if 75 <= x && x <= 100 { // numbers here are ordered from smallest to greatest
Run Code Online (Sandbox Code Playgroud)
因为数不能大于100 且小于75.
当然,其他系列也是如此.
请注意,您可以进行较少的比较.假设您最初测试的数字是否小于100,那么在您测试它小于75之后,您不必测试它是否小于75.
一个典型的Go代码可能有一个switch
而不是所有那些if/else
.请参阅文档中的开关.以下是用以下方法编写的switch
:
switch {
case x > 100:
fmt.Println("Congrats!") // you forgot this one
case x >= 75:
fmt.Println("D1")
case x >= 70:
fmt.Println("D2")
case x >= 65:
fmt.Println("C3")
case x >= 60:
fmt.Println("C4")
case x >= 55:
fmt.Println("C5")
case x >= 50:
fmt.Println("C6")
case x >= 45:
fmt.Println("P7")
default:
fmt.Println("Work harder")
}
Run Code Online (Sandbox Code Playgroud)
最后一条评论:很少发生这种类型的切换代码,因为通常将阈值和相关注释存储为数据,例如在a中struct
.
归档时间: |
|
查看次数: |
51822 次 |
最近记录: |