【发布时间】:2011-04-25 07:32:53
【问题描述】:
伙计们,
最近开始学习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语句呢?
【问题讨论】:
-
你的休息时间在哪里;声明?
-
是否希望每个 case 语句都有一个中断?
-
它不会执行匹配的case之后的所有case,直到它移出或找到break
-
它不会“期待”任何东西。它做你要求它做的事情。使用
break它会做一件事,没有break它会做另一件事。
标签: c switch-statement case-statement