设为首页 加入收藏

TOP

3.1.6 switch语句(1)
2013-10-07 16:06:02 来源: 作者: 【 】 浏览:66
Tags:3.1.6 switch 语句

3.1.6  switch语句(1)

switch语句能够基于给定表达式的一组定值,从多个选项中进行选择。其原理就像旋转开关一样,可以从多个选项中选择其中一项,有些洗衣机就是以这种方式供用户操作的。开关上有多个位置,如棉、毛料、合成纤维等,旋转手柄,指向需要的选项,就可以选择任意一个位置。

在switch语句中,作出的选择由指定表达式的值决定。可以用一个或多个case值来定义switch的位置。如果switch表达式的值与某个分情形值(case值)相同,则选择相应的case值。switch语句的每种选择对应一个case值,所有case值都不相同。

switch语句的一般形式如下:

  1. switch(expression)  
  2. {  
  3. case c1:  
  4. // One or more statements for c1...  
  5. break;  
  6. case c2:  
  7. // One or more statements for c2...  
  8. break;  
  9. // More case statements...  
  10. default:  
  11. // Statements for default case...  
  12. break;  
  13. }  

switch和case都是关键字,c1、c2等都是整型常量,或编译器可以计算的、得到整型常量的表达式,即不是必须在运行期间计算的表达式。case语句的顺序可以任意,每个case值都必须唯一,才能让编译器区分它们。当expression计算为其中一个case值时,就执行该case语句后面的语句。

如果switch表达式的值不与任何case值匹配,则switch自动选择默认的case值。也可以省略默认的case值,此时默认的case语句什么也不做。

在执行了某个case语句后,每个case语句末尾的break语句将程序的执行传递给switch块后面的语句。如果没有这条语句,程序将继续执行下一个case语句,默认case后面的break不是必需的,但最好包含它,以便于以后在默认case后面添加case语句。下面看看其工作过程。

试一试: switch语句

通过下面的示例,可以分析switch语句的工作过程。

  1. // Ex3_05.cpp  
  2. // Using the switch statement  
  3. #include <iostream> 
  4. using std::cin;  
  5. using std::cout;  
  6. using std::endl;  
  7. int main()  
  8. {  
  9. int choice(0); // Store selection value here  
  10. cout << endl 
  11. << "Your electronic recipe book is at your service." << endl 
  12. << "You can choose from the following delicious dishes: "  
  13. << endl 
  14. << endl << "1 Boiled eggs"  
  15. << endl << "2 Fried eggs"  
  16. << endl << "3 Scrambled eggs"  
  17. << endl << "4 Coddled eggs"  
  18. << endl << endl << "Enter your selection number: ";  
  19. cin >> choice;  
  20. switch(choice)  
  21. {  
  22. case 1: cout << endl << "Boil some eggs." << endl;  
  23. break;  
  24. case 2: cout << endl << "Fry some eggs." << endl;  
  25. break;  
  26. case 3: cout << endl << "Scramble some eggs." << endl;  
  27. break;  
  28. case 4: cout << endl << "Coddle some eggs." << endl;  
  29. break;  
  30. default: cout << endl << "You entered a wrong number, try raw eggs."  
  31. << endl;  
  32. }  
  33. return 0;  
  34. }  

示例说明

在流输出语句中显示了输入选项,并将选择的数字读入变量choice之后,switch语句开始按照指定的条件执行,该条件是关键字switch后圆括号内的choice。switch中的选项包围在大括号之间,分别用case标签来标识。case标签是关键字case,加上后面跟着的与该选项对应的choice值,并以冒号结束。

可以看出,特定case下要执行的语句写在Case标签结束处冒号的后面,以一条break语句结束。break语句将程序的执行传递给switch后面的语句。break不是必需的,但如果没有这条语句,程序将继续执行后面的case语句,这通常不是我们想要的。可以试一下,看看删除本示例中的break语句之后会发生什么事情。

对特定情形要执行的语句也可以用大括号括起来,有时必须这么做。例如,如果在case语句中创建一个变量,则必须包含括号。下面的语句会导致错误消息:

  1. switch(choice)  
  2. {  
  3. case 1:  
  4. int count = 2;  
  5. cout << "Boil " << count 
  6. << " eggs." << endl;  
  7. // Code to do something with count...  
  8. break;  
  9. default:  
  10. cout << endl << "You entered a wrong number, try raw eggs." << endl;  
  11. break;  
  12. }  

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇3.1.5 条件运算符 下一篇3.1.6 switch语句(2)

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·用 C 语言或者限制使 (2025-12-25 08:50:05)
·C++构造shared_ptr为 (2025-12-25 08:50:01)
·既然引用计数在做 GC (2025-12-25 08:49:59)
·Java 编程和 c 语言 (2025-12-25 08:19:48)
·. net内存管理宝典这 (2025-12-25 08:19:46)