level 13
X疼了。。。
#include <stdio.h>
int main()
{
int n = 5230;
switch(n)
{
default:
puts("n != 5230");
break;
case 0:
puts("n == 5230");
break;
}
return 0;
}
2011年07月09日 13点07分
5
level 12
switch (var)
{
case 1: sentence1; if (flag1) break;
case 2: sentence2; if (flag2) break;
default: sentencex; if (flagx) break;
case 3: sentence3; if (flag3) break;
case 4: sentence4; if (flag4) break;
}
比如说这样写,在什么情况下会出现什么结果?
2011年07月09日 13点07分
6
level 12
哦哦,当int n=0;的时候,是输出的case 0的情况。
也就是说编译器不是无脑的0w0
2011年07月09日 13点07分
7
level 12
#include <stdio.h>
int main()
{
int n = 0;
switch(n)
{
default:
puts("n != 5230");
case 0:
puts("n == 5230");
break;
}
getch();
return 0;
}
当n为0的时候,即使default没break,也不会执行default
2011年07月09日 13点07分
10
level 8
无法判断数据上界 这个是怎么实现的
可以写在后面 我在VC++6.0下试过 在GCC下也试过
#include <stdio.h>
int main(void)
{
int choice;
scanf("%d", &choice);
switch(choice)
{
case 1: fputs("一\n", stdout); break;
case 2: fputs("二\n", stdout); break;
default: fputs("从前有颗菜, 他真的很菜。RT\n", stdout); break;
case 3: fputs("三\n", stdout); break;
}
return 0;
}
sy@ubuntu:~$ gcc -Wall -o default_test.out default_test.c
sy@ubuntu:~$ ./default_test.out
3
三
sy@ubuntu:~$ ./default_test.out
2
二
sy@ubuntu:~$ ./default_test.out
10
从前有颗菜, 他真的很菜。RT
2011年07月09日 13点07分
11
level 1
这个时候n == 1的话,你把default放在下面和上面结果是不同的。这种机制拿来处理一些共有特征的时候比较有用~
2011年07月09日 13点07分
12
level 8
我觉得 使用switch case的时候不是要确切知道多少个分支吗 并把每个分支写出来(c99 可以case 1...100好像)
但是
lz
不确定分支数 我就不明白 那还怎么用switch case
2011年07月09日 13点07分
16
level 1
大的上界总得知道吧:
swtich (n)
case 10:
case 9:
case 8:
...
case 0:
这样的,n为10的时候从10执行到0,9的时候9到0。。。这个写法做循环展开的时候比较有用,平常需要这么写的时候还是斟酌一下是不是足够合理。
2011年07月09日 13点07分
17
level 12
比如算税款那个吧~能确定一定范围内的分支(如1-10,11-30,31-50,50+),我开始NC的想从高往低算(先default再case 4,case3),又怕没超出的时候(如15)也会执行default.
2011年07月09日 13点07分
18
level 12
另外这就是P比C方便的一个地方了~
P里就可以写
case (var)
begin
case 1..10:
case 11..20:
...
default:
end;
大概是这样吧。。。。好久没写了(扶额
2011年07月09日 13点07分
20