选择结构:依据条件是否满足,有选择的执行相应功能
选择结构分类如下:
(1)if语句(2)三目运算符
(3)switch语句
1.if语句
if语句作用:执行满足条件的语句
if语句分为三种形式
(1)单行格式if语句
(2)多行格式if语句
(3)多条件的if语句
(1)单行格式的if语句:if(条件){ 条件满足执行的语句 };
#include<iostream> using namespace std; int main() { // 选择语句 单行if语句 // 用户输入分数,如果分数大于600,则视为考上一本大学,在屏幕输出 // 1、用户输入分数 int score = 0; cout << "请输入一个分数:" << endl; cin >> score; // 2、打印用户输入的分数 cout << "您输入的分数为:" << score << endl; // 3、判断分数是否大于600,如果大于,那么输出 // 注意事项,if条件后面不要加分号 if (score > 600) { cout << "恭喜您考上一本大学!" << endl; } system("pause"); return 0; }
(2)多行格式的if语句:if(条件) { 条件满足执行的语句 }else{ 条件不满足执行的语句 };
#include<iostream> using namespace std; int main() { // 选择结构:多行if语句 // 输入考试分数,如果分数大于600,视为考上一本大学,在屏幕上输入 // 如果没考上一本大学,则未考上一本大学 // 1. 输入考试分数 int score = 0; cout << "请输入一个考试分数:" << endl; cin >> score; // 2. 提示用户输入的分数 cout << "您输入的分数为:" << score << endl; // 3. 判断 如果大于600,打印考上一本,否则打印未考上一本 if (score > 600) // 大于600分执行下面大括号内容 { cout << "恭喜您考上一本大学!" << endl; } else //不大于600分数,执行else大括号内容 { cout << "未考上一本大学" << endl; } system("pause"); return 0; }
(3)多条件if语句:if(条件1){ 条件1满足执行的语句 }else if(条件2){条件2满足执行的语句}... else{ 都不满足执行的语句};
#include<iostream> using namespace std; int main() { // 选择结构:多条件if语句 // 输入一个考试分数,如果大于600分,视为考上一本大学,在屏幕输出 // 大于500,视为考上二本大学,屏幕输出 // 大于400,视为考上三本大学,屏幕输出 // 小于等于400,视为未考上本科,屏幕输出 // 1. 用户输入分数 int score = 0; cout << "请输入您的考试分数:" << endl; cin >> score; // 2. 提示用户输入的分数 cout << "您输入的考试分数为:" << score << endl; // 3. 判断 // 如果大于600,考上一本 // 如果大于500,考上二本 // 如果大于400,考上三本 // 前三个都没有满足,则为未考上本科 if (score > 600) { cout << "恭喜您考上一本大学" << endl; } else if (score > 500) { cout << "恭喜您考上二本大学" << endl; } else if (score > 400) { cout << "恭喜您考上了三本大学" << endl; } else { cout << "您未考上本科大学,请再接再厉" << endl; } system("pause"); return 0; }
嵌套f语句作用:在if语句中,可以嵌套使用if语句,达到更为精确的条件判断
案例需求:
(1)提示用户输入一个高考考试分数,根据条件做出盘带你
(2)分数如果大于600分则视为考上一本,大于500分则视为考上二本,大于400分考上三本,其余视为未考上本科
(3)在一本分数中,如果大于700,则考入北大,大于650,则考入清华,大于600,则考入人大。
#include<iostream> using namespace std; int main() { // 1、提示输入高考分数 int score = 0; cout << "请输入您高考的分数:" << endl; cin >> score; // 2、显示高考分数 cout << "您输入的分数为:" << endl; // 3、判断 // 如果大于600 一本 //大于700 北大 // 大于650 清华 // 大于600 人大 // 如果大于500 二本 // 如果大于400 三本 // 其余情况,未考上本科 if (score > 600) { cout << "恭喜您考入一本大学" << endl; if (score > 700) { cout << "您能考入北京大学" << endl; } else if (score > 650) { cout << "您能考入清华大学" << endl; } else { cout << "您能考入人民大学" << endl; } } else if (score > 500) { cout << "恭喜您考入二本大学" << endl; } else if (score > 400) { cout << "恭喜您考入三本大学" << endl; } else { cout << "未考上本科,请再接再厉" << endl; } system("pause"); return 0; }
练习案例:三只小猪称体重
有三只小猪ABC,请分别输入三只小猪的体重,并且判断哪只小猪最重?
#include<iostream> using namespace std; int main() { // 三只小猪称体重,判断哪只最重 // 创建三只小猪的体重变量 int num1 = 0; int num2 = 0; int num3 = 0; // 2、让用户输入三只小猪的体重 cout << "请输入小猪A的体重:" << endl; cin >> num1; cout << "请输入小猪B的体重:" << endl; cin >> num2; cout << "请输入小猪C的体重:" << endl; cin >> num3; cout << "小猪A的体重为:" << num1 << endl; cout << "小猪B的体重为:" << num2 << endl; cout << "小猪C的体重为:" << num3 << endl; // 判断哪只小猪最重 // 先判断A和B重量 if (num1 > num2) //A比B重 { if (num1 > num3) // A比C重 { cout << "小猪A最重" << endl; } else { cout << "小猪C最重" << endl; } } else // B比A重 { if (num2 > num3) // B比C重 { cout << "小猪B最重" << endl; } else // C比B重 { cout << "小猪C最重" << endl; } } system("pause"); return 0; }
2. 三目运算符
三目运算符作用:通过三目运算符实现简单的判断
语法:表达式1 ? 表达式2 : 表达式3
解释:
如果表达式1的值为真,执行表达式2,并返回表达式2的结果
如果表达式1的值为假,执行表达式3,并返回表达式3的结果
#include<iostream> using namespace std; int main() { // 三目运算符 // 创建三个变量a b c // 将a和b作比较,将变量大的值赋值给变量c int a = 10; int b = 20; int c = 0; c= (a > b ? a : b); cout << "c = " << c << endl; // 在C++中三目运算符返回的是变量,可以继续赋值 (a > b ? a : b) = 100; cout << "a = " << a << endl; cout << "b = " << b << endl; system("pause"); return 0; }
3.switch语句
switch语句作用:执行多条件分支语句
语法:
switch(表达式)
{
case 结果1:执行语句;break;
case 结果2:执行语句;break;
...
default:执行语句;break;
}
#include<iostream> using namespace std; int main() { // switch语句 // 给电影进行打分 // 10~9 经典 // 8~7 非常好 // 6~5 一般 // 5以下 烂片 // 1. 提示用户给电影评分 cout << "请给电影进行打分:" << endl; // 2. 用户开始进行打分 int score = 0; cin >> score; cout << "您打的分数为:" << score << endl; // 3.根据用户输入的分数来提示用户最后的结果 switch (score) { case 10: cout << "您认为是经典电影" << endl; break; // 退出当前分支 case 9: cout << "您认为是经典电影" << endl; break; case 8: cout << "您认为电影非常好" << endl; break; case 7: cout << "您认为电影非常好" << endl; break; case 6: cout << "您认为电影一般" << endl; break; case 5: cout << "您认为电影一般" << endl; break; default: cout << "您认为这是烂片" << endl; break; } // if和switch区别 // switch缺点:判断时候只能是整型或字符型,不可以是一个区间 // swicth优点:结构清晰,执行效率高 system("pause"); return 0; }