我在接受采访时被问到这个问题.我回答说这是一个有条件的结构,因为
那么我的回答是对还是错,有更好的答案吗?
他还问我说明break;语句与switch-case一起使用的原因,因为break;它只适用于循环.这个问题我无法回答.
For*_*veR 12
在C++中
switch 是 selection-statement
n3376 6.4/1和6.4.2是关于 switch
selection-statement:
...
switch ( condition ) statement
Run Code Online (Sandbox Code Playgroud)
break 是 jump-statement
n3376 6.6.1/1
break语句只能在iteration-statement或switch语句中出现,并导致最小的封闭iteration-statement或switch语句终止; 控制权传递给终止语句后的语句(如果有).
答案C
没有称为“条件构造”的正式术语。C 标准使用术语选择语句。C 语言具有三种不同的选择语句:if、if-else和switch(C11 6.8.4)。循环在迭代语句类别下排序(6.8.5)。
该break语句是一个跳转语句,就像goto. 它对允许出现的位置有一些限制:
C11 6.8.6.3
Break 语句只能出现在 switch 体或循环体中或作为 switch 体或循环体出现。
那么回答面试问题:
switch case 是循环还是条件结构?
如果您所说的条件构造是指选择语句,那么是的,它switch是一个条件构造。
为什么要打破;语句与 switch-case 配合使用,因为、break;仅适用于循环
不,这个问题是不正确的,它不仅仅适用于循环。switch 它与和循环一起使用。这是因为 C 语言是这样定义的 (6.8.6.3)。