先决条件—— C/C中的开关盒++
null
C/C中Switch语句的有趣问题++
- 方案1
#include <stdio.h>
int
main()
{
int
num = 2;
switch
(num + 2)
{
case
1:
printf
(
"Case 1: "
);
case
2:
printf
(
"Case 2: "
);
case
3:
printf
(
"Case 3: "
);
default
:
printf
(
"Default: "
);
}
return
0;
}
输出:
Default:
说明: 在switch中,一个表达式“num+2”,其中num值为2,相加后表达式结果为4。由于没有使用值4定义案例,因此执行了默认案例。
-
方案2
#include<stdio.h>
void
main()
{
int
movie = 1;
switch
(movie << (2 + movie))
{
default
:
printf
(
" Traffic"
);
case
4:
printf
(
" Sultan"
);
case
5:
printf
(
" Dangal"
);
case
8:
printf
(
" Bahubali"
);
}
}
输出:
Bahubali
说明: 我们可以按任何顺序编写case语句,包括默认case。默认情况可以是switch case语句中的第一种情况、最后一种情况或介于两者之间的任何情况。表达“movie<
- 方案3
#include<stdio.h>
#define L 10
void
main()
{
auto
a = 10;
switch
(a, a*2)
{
case
L:
printf
(
"ABC"
);
break
;
case
L*2:
printf
(
"XYZ"
);
break
;
case
L*3:
printf
(
"PQR"
);
break
;
default
:
printf
(
"MNO"
);
case
L*4:
printf
(
"www"
);
break
;
}
}
输出:
XYZ
说明: 在C语言中,逗号也是优先级最低的运算符。所以如果 x=(a,b); 那么x=b 注:大小写表达式可以是宏常量。
- 方案4
#include<stdio.h>
void
main()
{
switch
(2)
{
case
1L:
printf
(
"No"
);
case
2L:
printf
(
"%s"
,
"GEEKS"
);
goto
Love;
case
3L:
printf
(
"Please"
);
case
4L:Love:
printf
(
"FOR"
);
}
}
输出:
GEEKSFOR
说明: 在switch case语句的情况下,可以编写goto语句的标签。
本文由 Somesh Awasthi先生 .如果你喜欢GeekSforgek,并想贡献自己的力量,你也可以使用 贡献极客。组织 或者把你的文章寄到contribute@geeksforgeeks.org.看到你的文章出现在Geeksforgeks主页上,并帮助其他极客。
如果您发现任何不正确的地方,或者您想分享有关上述主题的更多信息,请写下评论。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END