gpt4 book ai didi

在 Switch 语句中转换 IF 语句

转载 作者:太空宇宙 更新时间:2023-11-04 01:20:56 25 4
gpt4 key购买 nike

我有一系列 IF 语句,我想在 Switch 语句中进行转换,但我无法在 switch 的 constant1 字段中成功插入求值。

我知道 Switch 是这样工作的:

switch ( expression ) {   //in my case:      switch (score) {
case constant1:
statement
break;
case constant2:
statement
default:
statement
break;

现在我试着把 <= 60在 constant1 字段中,但它当然不起作用。

这是我要在 Switch 中转换的一系列 IF 语句。

if (score <= 60) {
printf("F");
}
if (score <= 70 && score > 60) {
printf("D");
}
if (score <= 80 && score > 70) {
printf("C");
}
if (score <= 90 && score > 80) {
printf("B");
}
if (score <= 100 && score > 90) {
printf("A");
}

感谢大家!

最佳答案

switch 语句接受常量,而不是条件。例如,你不能说 >= const,所以你需要改变策略。

例如,在您的情况下,您可以在从中减去 1 之后打开两位数分数的第一位:

switch ((score-1) / 10) {
case 0:
case 1:
case 2:
case 3:
case 4:
case 5: printf("F"); break;
case 6: printf("D"); break;
case 7: printf("C"); break;
case 8: printf("B"); break;
case 9: printf("A"); break;
}

案例 0..4 使用 C 的 fall-through 机制进行 switch 语句,所有打印 "D"

上面的代码假定您已将分数范围检查为 1..100,包括在内。

关于在 Switch 语句中转换 IF 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42852663/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com