程序流程结构
程序流程结构分为:顺序结构,选择结构,循环结构
选择结构
if语句
- if语句:单分支
- if...else语句:双分支
- 多条件的if语句
1.if语句: 单分支
if (条件表达式) {执行语句}
//如果条件表达式为真,则执行花括号中的语句
2.if...else语句:双分支
if(条件表达式)
{
// 如果布尔表达式为真将执行的语句
}
else
{
// 如果布尔表达式为假将执行的语句
}
//如果条件为真,执行条件表达式后{}内的语句;如果条件为假,执行else后{}内的语句.
3.if...多重else if...else语句:多分支
if(boolean_expression 1)
{
// 当布尔表达式 1 为真时执行
}
else if( boolean_expression 2)
{
// 当布尔表达式 2 为真时执行
}
else if( boolean_expression 3)
{
// 当布尔表达式 3 为真时执行
}
//...可有若干else if语句块
else
{
// 当上面条件都不为真时执行
}
#include <iostream>
using namespace std;
int main()
{
int score;
cout << "请输入成绩:" << endl;
cin >> score;
//if语句:单分支
//成绩合理性检查:如果成绩小于0分
if (score < 0) {
cout << "您输入的成绩小于0:不合法!" << endl;
system("pause");
return 0;
}
//if...else语句:双分支
//小于60分不及格,否则为及格.
if (score < 60) {//不及格情况执行的语句块
cout << "您的成绩不及格!" << endl;
}
else {//及格情况下执行的语句块:评价成绩
//此时我们嵌套if语句块来进行评价成绩
//if...else if...else语句:多分支
//根据成绩不同分数段评价
if (score < 70) {
cout << "评价:差" << endl;
}
else if (score < 80) {
cout << "评价:勉强" << endl;
}
else if (score < 90) {
cout << "评价:良" << endl;
}
else if (score <= 100) {
cout << "评价:优秀" << endl;
}
else {
cout << "超出满分100分!你这是要上天!" << endl;
}
}
system("pause");
return 0;
}
三目运算符
语法:Exp1 ? Exp2 : Exp3;
如果 Exp1 为真,则计算 Exp2 的值作为整个表达式的值;如果 Exp1 为假,则计算 Exp3 的值作为整个表达式的值。
int x, y = 10;
x = (y < 10) ? 30 : 40;
cout << "value of x: " << x << endl;//x=40
switch语句
作用:根据switch表达式的值,判断是否和case表达式值相同.如果相同,选择该case语句块分支执行.
switch(表达式){
case constant-expression :
语句块;
break; // 可选的
case constant-expression :
语句块;
break; // 可选的
...
default : // 可选的
语句块;
}
注意:switch表达式数据类型必须为整型,字符型或枚举型;case后跟必须为常量或字面常量且数据类型必须和switch表达式一致..
case判断语句中如果没有break结尾,就不会跳出switch结构.而会一直向下顺序执行(可能超出开发人员预想情况).因此case语句块不要遗漏break语句.
int rate;
cout << "请为电影打分(0-10):" << endl;
cin >> rate;
cout << "你打的分数为:" << rate << endl;
switch (rate) {
case 10:
case 9:
cout << "电影评价:优秀,经典." << endl;
break;
case 8:
case 7:
cout << "电影评价:良" << endl;
break;
case 6:
case 5:
cout << "电影评价:一般" << endl;
break;
case 4:
case 3:
cout << "电影评价:差" << endl;
break;
default:
cout << "电影评价:烂片!" << endl;
}