go lang中的if else语句

有人可以帮我调试这个程序,每个输入只处理 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")

    }

}


12345678_0001
浏览 210回答 3
3回答

子衿沉夜

你有逻辑问题。改变if&nbsp;(100&nbsp;<=&nbsp;x)&nbsp;&&&nbsp;(x<=75){至if&nbsp;75&nbsp;<=&nbsp;x&nbsp;&&&nbsp;x&nbsp;<=&nbsp;100&nbsp;{&nbsp;//&nbsp;numbers&nbsp;here&nbsp;are&nbsp;ordered&nbsp;from&nbsp;smallest&nbsp;to&nbsp;greatest因为一个数字不能大于 100且小于 75。当然,其他线路也是如此。请注意,您可以减少比较。假设您最初测试该数字是否小于 100,那么您不必在测试它小于 75 后立即测试它是否小于 75。一个典型的 Go 代码可能会有一个switchhere 而不是所有那些if/else.&nbsp;请参阅文档中的开关。下面是如何用 a 编写它switch:switch {case x > 100:&nbsp; &nbsp; fmt.Println("Congrats!") // you forgot this onecase x >= 75:&nbsp; &nbsp; fmt.Println("D1")case x >= 70:&nbsp; &nbsp; fmt.Println("D2")case x >= 65:&nbsp; &nbsp; fmt.Println("C3")case x >= 60:&nbsp; &nbsp; fmt.Println("C4")case x >= 55:&nbsp; &nbsp; fmt.Println("C5")case x >= 50:&nbsp; &nbsp; fmt.Println("C6")case x >= 45:&nbsp; &nbsp; fmt.Println("P7")default:&nbsp; &nbsp; fmt.Println("Work harder")}最后评论:这种类型的切换代码很少发生,因为通常阈值和相关注释存储为数据,例如在struct.

陪伴而非守候

您的 IF 声明说:if 100 is less than x (which means x has to be greater than 100)ANDx less than (or equal to) 75do this--x 永远不会大于 100 且小于 75,因此它总是执行 ELSE ...

桃花长相依

此代码中提供的所有 if 和 if else 语句在逻辑上都是错误的例子:&nbsp;if (100 <= x) && (x<=75)&nbsp;这里如果 (100 <= x) 为假,编译器甚至不会考虑下一个条件。这称为 SHORT CIRCUIT,条件语句的惰性求值。这也适用于 OR 条件,即如果第一个条件为真,则不会评估第二个条件。所以根据你写的代码,理想的解决方案是func main() {&nbsp; &nbsp; var x int&nbsp; &nbsp; fmt.Println("Enter your marks")&nbsp; &nbsp; fmt.Scanf("%d", &x)&nbsp; &nbsp; if (100 >= x) && (x >= 75) {&nbsp; &nbsp; &nbsp; &nbsp; fmt.Println("D1")&nbsp; &nbsp; } else if (74 >= x) && (x >= 70) {&nbsp; &nbsp; &nbsp; &nbsp; fmt.Println("D2")&nbsp; &nbsp; } else if (69 >= x) && (x >= 65) {&nbsp; &nbsp; &nbsp; &nbsp; fmt.Println("C3")&nbsp; &nbsp; } else if (64 >= x) && (x >= 60) {&nbsp; &nbsp; &nbsp; &nbsp; fmt.Println("C4")&nbsp; &nbsp; } else if (59 >= x) && (x >= 55) {&nbsp; &nbsp; &nbsp; &nbsp; fmt.Println("C5")&nbsp; &nbsp; } else if (54 >= x) && (x >= 50) {&nbsp; &nbsp; &nbsp; &nbsp; fmt.Println("C6")&nbsp; &nbsp; } else if (49 >= x) && (x >= 45) {&nbsp; &nbsp; &nbsp; &nbsp; fmt.Println("P7")&nbsp; &nbsp; } else {&nbsp; &nbsp; &nbsp; &nbsp; fmt.Println("Work harder")&nbsp; &nbsp; }
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go