学习switch语句的时候,接受下面这样的程序:
switch(a)
{
case 1: printf("one");break;
case 2: printf("two");break;
default: printf("three");
}
a=1 输出one
a=2 输出two
a=3 输出three
switch中的default一定要在最后吗?答案是否定的。
那么,下面的执行结果又是什么呢?
switch(a)
{
case 1: printf("one");break;
default: printf("three");break;
case 2: printf("two");break;
}
a=1 输出one
a=2 输出two
a=3 输出three
这个呢?和上面一样吗?
switch(a)
{
case 1: printf("one");break;
default: printf("three");
case 2: printf("two");break;
}
a=1 输出one
a=2 输出two
a=3 输出threetwo
【结论】
1.default是在case全都不匹配的情况。
2.default放在任意的位置都可以。
3.switch语句的结束是以最下面一条结束的,并不是以default为最后。
Microsoft Visual C++和Borland的编译器都是采用二分查找方法来检测case的各种情况,所以这个switch的case和default执行顺序是与编译器有关的。
switch(a)
{
case 1: printf("one");break;
case 2: printf("two");break;
default: printf("three");
}
a=1 输出one
a=2 输出two
a=3 输出three
switch中的default一定要在最后吗?答案是否定的。
那么,下面的执行结果又是什么呢?
switch(a)
{
case 1: printf("one");break;
default: printf("three");break;
case 2: printf("two");break;
}
a=1 输出one
a=2 输出two
a=3 输出three
这个呢?和上面一样吗?
switch(a)
{
case 1: printf("one");break;
default: printf("three");
case 2: printf("two");break;
}
a=1 输出one
a=2 输出two
a=3 输出threetwo
【结论】
1.default是在case全都不匹配的情况。
2.default放在任意的位置都可以。
3.switch语句的结束是以最下面一条结束的,并不是以default为最后。
Microsoft Visual C++和Borland的编译器都是采用二分查找方法来检测case的各种情况,所以这个switch的case和default执行顺序是与编译器有关的。