先决条件– C / C++中的开关盒
C / C++中的Switch语句有趣的问题
- 程序1
#include
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
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语句,包括默认大小写。该默认大小写可以是首字母大写,最后一个大写或在switch case语句中的任何大写之间。表达式“电影<<(2 +电影)”的值为8。
- 程序3
#include
#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
注意:case表达式可以是宏常量。 - 程序4
#include
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语句的标签。
想要从精选的最佳视频中学习和练习问题,请查看《基础知识到高级C的C基础课程》。