控制流程
决策结构要求程序员指定一个或多个要由程序评估或测试的条件,以及确定该条件为真的情况下要执行的一条或多条语句,以及指定该条件时要执行的其他语句(可选)确定为假。下面显示的是大多数编程语言中常见的典型决策结构的一般形式-
C++编程语言将任何非零和非null值假定为true,并且如果它为零或null,则将其假定为false值。
C++编程语言提供以下类型的决策语句。
声明 |
描述 |
if声明 |
一个if语句包含一个布尔表达式后跟一个或多个语句。 |
if...else声明 |
一个if语句可以跟着一个可选的else语句,当布尔表达式是假的,其执行。 |
嵌套if语句 |
您可以在另一个if or else if语句中使用一个if or else if语句。 |
switch语句 |
switch语句允许一个变量来针对值的列表平等进行测试。 |
嵌套的switch语句 |
您可以在另一个switch语句中使用一个switch语句。 |
范例 - if声明:
#include <iostream>
using namespace std;
int main () {
/* local variable definition */
int a = 10;
/* check the boolean condition using if statement */
if( a < 20 ) {
/* if condition is true then print the following */
cout << "a is less than 20" << endl;
}
cout << "value of a is : " << a << endl;
return 0;
}
尝试一下
范例 - if...else声明:
#include <iostream>
using namespace std;
int main () {
/* local variable definition */
int a = 100;
/* check the boolean condition */
if( a < 20 ) {
/* if condition is true then print the following */
cout << "a is less than 20" << endl;
} else {
/* if condition is false then print the following */
cout << "a is not less than 20" << endl;
}
cout << "value of a is : " << a << endl;
return 0;
}
尝试一下
范例 - 嵌套if语句:
#include <iostream>
using namespace std;
int main () {
/* local variable definition */
int a = 100;
int b = 200;
/* check the boolean condition */
if( a == 100 ) {
/* if condition is true then check the following */
if( b == 200 ) {
/* if condition is true then print the following */
cout << "Value of a is 100 and b is 200" << endl;
}
}
cout << "Exact value of a is : " << a << endl;
cout << "Exact value of b is : " << b << endl;
return 0;
}
尝试一下
范例 - switch语句:
以下规则适用于switch语句
- switch语句中使用的表达式必须具有整数或枚举类型,或者是类类型,其中该类具有到整数或枚举类型的单个转换函数。
- switch内可以有任意数量的case语句。每个case后面都跟要比较的值和一个冒号。
- case的常量表达式必须与switch中的变量具有相同的数据类型,并且必须是常量或文字。
- 当switch的变量等于case时,该case之后的语句将一直执行,直到到达break语句为止。
- 当到达break声明,switch终止,并且控制流程跳转到以下switch语句中的下一行。
- 并非每个case都需要break一下。直到达到switch最后的case如果没有switch的值出现控制流会落空。
- 一个switch语句可以有一个可选的默认情况下,它必须出现在switch的最后。当所有情况都不为真时,可以使用默认情况来执行任务。在默认情况下,无需break。
#include <iostream>
using namespace std;
int main () {
/* local variable definition */
char grade = 'B';
switch(grade) {
case 'A' :
cout << "Excellent!" << endl;
break;
case 'B' :
case 'C' :
cout << "Well done" << endl;
break;
case 'D' :
cout << "You passed" << endl;
break;
case 'F' :
cout << "Better try again" << endl;
break;
default :
cout << "Invalid grade" << endl;
}
cout << "Your grade is %c" << grade << endl;
return 0;
}
尝试一下
范例 - 嵌套的switch语句:
#include <iostream>
using namespace std;
int main () {
/* local variable definition */
int a = 100;
int b = 200;
switch(a) {
case 100:
cout << "This is part of outer switch\n" << endl;
switch(b) {
case 200:
cout << "This is part of inner switch" << endl;
}
}
cout << "Exact value of a is : " << a << endl;
cout << "Exact value of b is : " << b << endl;
return 0;
}
尝试一下