C++ switch case详解
发布时间:2020-12-16 07:39:10 所属栏目:百科 来源:网络整理
导读:当程序的一部分导致另一部分执行时,会发生分支。if-else if 语句允许程序分支到几个可能的路径之一,当这些测试之一成立时,它执行一系列测试(通常是关系)和分支。 switch 语句 是一个类似的机制,但是它测试的是整数表达式的值,然后使用该值来确定要分支
当程序的一部分导致另一部分执行时,会发生分支。if-else if 语句允许程序分支到几个可能的路径之一,当这些测试之一成立时,它执行一系列测试(通常是关系)和分支。 switch 语句是一个类似的机制,但是它测试的是整数表达式的值,然后使用该值来确定要分支到哪一组语句,以下是 switch 语句的格式: switch (IntegerExpression) { case ConstantExpression: //在这里放置一个或多个语句 case ConstantExpression: //在这里放置一个或多个语句 //case可被重复多次 default: //在这里放置一个或多个语句 }此类语句的第一行以单词 switch 开始,后面是括号内的整数表达式 Integer Expression。 这可以是以下两种之一:
在下一行是包含几个 case 语句的块的开头,每个 case 语句格式如下: case ConstantExpression: //在这里放置一个或多个语句在单词 case 之后是一个常量表达式 Constant Expression,它必须是整数类型,如 int 或 char,后面跟一个冒号。常量表达式可以是整型常数或整型命名常量。该表达式不能是一个变量(如 n==25),也不能是布尔表达式(如 x<22)。case 语句标记一段分支语句的开头,如果 switch 表达式的值与 case 达式的值匹配,则进入该分支。 请注意,与大多数语句块不同,这组语句不需要大括号,且块中每个 case 语句的表达式必须是唯一的。 在所有 case 语句后面的是可选的 default 部分。如果没有一个 case 表达式与 switch 表达式匹配,则进入该分支。因此,它的作用就像 if-else if 语句中的结尾 else。下面的程序显示了一个简单的 switch 语句的工作原理: #include <iostream> using namespace std; int main() { char choice; cout << "Enter A,B,or C: "; cin >> choice; switch (choice) { case 'A' : cout<< "You entered A. n"; break; case 'B' : cout << "You entered B. n"; break; case 'C' : cout << "You entered C.n"; break; default: cout << "You did not enter A,or C!n"; } return 0; }程序输出结果:
Enter A,or C: B 注意,在“case 'A'”、“case 'B'”和“case 'C'”部分的末尾都有 break 语句。break 语句可以导致程序退出 switch 语句。在遇到 break 语句后,执行的下一条语句将是终止整个 switch 语句的封闭大括号后面的任何语句。 例如,在前面程序中,遇到 break 之后执行的就是第 22 行大括号之后的语句。每当要“断开”一个 switch 语句时,就需要一个 break 语句,它不会像 if-else if 语句那样选择执行一组语句之后就自动退出。 case 语句显示程序在块中开始执行的位置,break 语句则显示程序停止的位置。如果没有 break 语句,则程序将执行从匹配的 case 语句到块结尾的所有行。 注意,default 部分(如果没有 default 则是最后一个 case 部分)不需要 break 语句。当然有些程序员有强迫症,喜欢也放一个以保持一致。 下面程序是上面程序的修改版,它演示了如果忽略 break 语句会发生什么。#include <iostream> using namespace std; int main() { char choice; cout << "Enter A,or C: "; cin >> choice; switch (choice) { case 'A' : cout<< "You entered A. n"; case 'B' : cout << "You entered B. n"; case 'C' : cout << "You entered C.n"; default: cout << "You did not enter A,or C!n"; } return 0; }程序运行结果:
Enter A,or C: A #include <iostream> using namespace std; int main() { ??? char feedGrade; ??? //Get the desired grade of feed ??? cout << "Our dog food is availablein three grades:n"; ??? cout << "A,and C. Which do you want pricing for? "; ??? cin >> feedGrade; ??? // Find and display the price ??? switch(feedGrade) ??? { ???? case 'a': ??????case 'A': ?????? cout << "30 cents per pound.n"; ????????break; ????? case 'b': ??????case 'B': ?????? cout << "30 cents per pound.n"; ????????break; ??????case 'c': ??????case 'C': ????????cout << "15 cents per pound.n"; ????????break; ??????default : ????????cout << "That is an invalid choice.n"; ??? } ??? return 0; }程序输出结果:
Our dog food is available in three grades: (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |