为什么默认情况会触发以下内容:
typedef enum {VALUE_ONE, VALUE_TWO} someValue;
typedef struct {
someValue value;
} myStruct;
---main() BELOW---
myStruct* myPtr = malloc(sizeof(myStruct));
myPtr->value = VALUE_ONE;
switch (myPtr->value) {
case VALUE_ONE:
...;
case VALUE_TWO:
...;
default:
...;
}
如果我使用if语句,代码将正常工作。目前,我想使用switch-case打印出特定值的短语。
更新:忘记了中断语句。谢谢大家!
答案 0 :(得分:3)
在break
情况下使用switch
语句,以便在达到break
语句时,交换机终止,控制流跳转到switch语句后的下一行。
switch (myPtr->value) {
case VALUE_ONE:
...;
break;
case VALUE_TWO:
...;
break;
default:
...;
}
答案 1 :(得分:0)
在使用switch case语句时,您必须执行类似的操作才能获得正确的结果
switch ( <variable> ) {
case 1:
Code to execute if <variable> == this-value
break;
case 2:
Code to execute if <variable> == that-value
break;
...
default:
Code to execute if <variable> does not equal the value following any of the cases
break;
}
假设您错过了案例2的break语句,因此每当switch-case 2为true时,它将进入所有其他情况(在案例2之后),直到代码遇到break语句。 Break语句用于在执行所需操作后显示案例。 希望如此清楚。