民歌,C - Tricky Switch Case工作..!
最近开始学习C.
卡住了一点。它关于switch-case语句的工作。
下面的代码:
#include<stdio.h>
int main() {
int i=4;
switch(i) {
default :
printf("%s","Default");
case 0:
printf("%s","Case 0");
case 1:
printf("%s","Case 1");
case 2:
printf("%s","Case 2");
return 0;
}
}
我个人认为,“Default
”应打印,因为它不与任何情况下的值相匹配。
但是,当我在Turbo C的运行代码,我观察到的是这样的:
Default
Case 0
Case 1
Case 2
即使在这里观察到相同的:http://www.ideone.com/pFh1d
问题是什么?这是编译器问题或我的代码中的任何错误?
编辑:
PS:错这有什么,如果在所有我必须先写默认情况。有什么伤害?
但是,一旦编译器知道它必须执行默认语句,为什么我们需要在默认情况下的语句之后放置一个break语句?
你的休息地点在哪里?声明? – 2011-04-25 07:33:47
它是否预计每个病例会中断? – 2011-04-25 07:34:54
它不会但它会执行匹配的所有情况,直到它移出或发现中断 – 2011-04-25 07:40:45