首页 > 试题广场 >

func(1)的结果是什么?

[单选题]
int func(int a){
    int b;
    switch (a){
        case 1: b = 30;
        case 2: b = 20;
        case 3: b = 16;
        default: b = 0;
    }
    return b;
}
则func(1) = ?
  • 30
  • 20
  • 16
  • 0
推荐
【正确答案】D
【解析】case 语句后面没有跟 break,所以会顺序执行 b = 30; b = 20; b = 16; b = 0。所以最后结果为 0。
 
switch 语句知识点讲解】
更多C++基础专业知识讲解,点击链接即可查看
https://www.nowcoder.com/link/zxyl-cpp35
编辑于 2021-11-17 15:44:20 回复(0)
func(1)=0,因为没有break语句,switch中会一直计算到b=0。这是提醒我们不要忘了break。
编辑于 2021-11-17 15:44:20 回复(5)
case找到匹配的之后,顺序执行之后不再判断直到遇到break跳出
编辑于 2015-04-27 21:57:52 回复(0)
没有break语句,一直执行
发表于 2015-03-30 20:00:59 回复(0)
看来做题的时候就该提高警惕,如果答案是 A,这个题出着还有什么意思呢,考官肯定是有陷阱的
发表于 2015-05-29 16:38:16 回复(0)
switch语句中各个case分支应添加break语句,default不用。
发表于 2020-02-26 21:39:15 回复(0)

大意啊!找到匹配的case 之后 没有break 跳出 会一直往下执行b的值也会一直被覆盖 直到最后变成0

发表于 2018-12-25 15:39:09 回复(0)
这里应该不会覆盖为20和16吧,毕竟case不是2或3,直接由30覆盖为0
发表于 2024-01-26 13:04:11 回复(0)
没有break一直执行
发表于 2022-07-13 14:41:55 回复(0)
case后面没有break语句,故循环继续执行,直到循环结束为止。
发表于 2022-04-18 12:29:00 回复(0)
一定要记得case语句要有break
发表于 2022-04-02 14:31:29 回复(0)
没有break草
发表于 2022-03-04 18:36:41 回复(0)
只认break和入口
发表于 2021-07-19 16:10:39 回复(0)
不要忘了break
发表于 2021-07-01 17:07:41 回复(0)
😭忘记break
发表于 2020-11-18 10:54:00 回复(0)
没有break我靠!
发表于 2020-08-31 21:55:37 回复(0)
*注意:func(1)=0,因为没有break语句,switch中会一直计算到b=0。这是提醒我们不要忘了break (case找到匹配的之后,顺序执行之后不再判断直到遇到break跳出)
发表于 2020-05-03 21:36:48 回复(0)
没有break语句,顺序执行到b = 0;
发表于 2019-11-25 08:44:08 回复(0)
第二次了,注意break
发表于 2019-05-09 20:09:38 回复(0)
D
编辑于 2017-10-18 13:18:17 回复(0)
没有break会一直执行
发表于 2016-05-17 00:31:17 回复(0)