C++多分支条件选择结构

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

网络与计算中心
3.1.2 双分支条件选择结构语句
3.条件表达式(?:运算符)
通常用条件表达式构成一个赋值语句, 其一般形式如下
LOGO
• x=<表达式1>?<表达式2>:<表达式3>
运用条件表达式可写出如下语句: • max=(a>b)?a:b 多个条件表达式连在一起: • x=<表达式1>?<表达式2>:<表达式3>?<表达 式4>:<表达式5>···
网络与计算中心
【例3.1】用程序实现商场打折问题的程序。 LOGO
#include<iostream> using namespace std; int main() { doubleamount; cout<< "请输入客户购买商品的金额总数:"; cin>>amount; if(amount >= 400) cout<< "用户实际支付购买商品的金额总数为:"<<amount*0.9<<endl; else if(amount>= 245) cout<< "用户实际支付购买商品的金额总数为:"<<amount*0.95<<endl; else if(amount>= 125) cout<< "用户实际支付购买商品的金额总数为:"<<amount*0.97<endl; else cout<< "用户实际支付购买商品的金额总数为:"<<amount<<endl; return 0; }
网络与计算中心
3.2 switch开关语句
LOGO
在C++语言程序中,运用多级if-else是为了那些可能 需要进行多级判断才能做出选择的情况。如前面3.1.4节 中例3.7所讲的例子。如果正好x的值是大于且等于4时, 程序照样还得从最开始的条件分支语句if(表达式)开始 进行判断,一直要做到最后的else分支结构才会结束整个 的分支结构中所有条件判断的过程。为了简化这种多级判 断的过程,C++语言又提供了另一种多分支结构的形式, 称作switch开关语句。
网络与计算中心
3.1.3多分支条件选择语句
多分支条件选择语句的语法含义:
假(0) 假(0)
表达式2
LOGO
表达式1
真(1) 真(1) 真(1)
假(0)
…… 表达式 n-1
假(0)
真(1) 分支语句1 分支语句2 …… 分支语句n-1 分支语句n
网络与计算中心
3.1.3多分支条件选择语句
2. 多分支结构应用程序举例
网络与计算中心
3.2.1 switch开关语句
#include <iostream> using namespace std; int main() { int whatWay; cout << "请输入序号,选择您如何来到本 网站。" << endl; cout <ndl; cout << "2) ---- 通过网友微博" << endl; cout << "3) ---- 通过网友微信" << endl; cout << "4) ---- 通过报刊、杂志" << endl; cout << "5) ---- 通过其他方法" << endl; cin>>whatWay; switch(whatWay) {
网络与计算中心
本章概述

LOGO
顺序结构的程序虽然能解决输入、计算、输出等问题,但 它不能解决程序执行过程中先做判断再选择的操作。 本章以实例为引导,循序渐进地介绍单分支、双分支和多 分支条件选择等三种if流程控制语句和开关语句(switch 语句)的结构形式和应用特点等方面知识,通过对本章知 识的学习,掌握C++的三大流程控制结构中分支条件选择 结构的基本语法和应用知识。
网络与计算中心
3.1.2 双分支条件选择结构语句
2.双分支结构应用程序举例

LOGO
【例3.4】汽车超速判断程序。
#include<iostream> using namespace std; int main() { int velocity; cout<<”请输入车速:”; cin>>velocity; if(velocity>60) cout<<”超速!“<<endl; else cout<<”正常!“<<endl; return 0; }
3.1.2 双分支条件选择结构语句
LOGO
1.双分支条件选择结构的特点及其执行流程规则如下:
表达式
真 假
表达式由关系表达式、逻辑表达式组成
语句块1
语句块2
语句多余一条时,要加大括号括起来 语句块中可以只有一个分号(;)
当表达式的值为 “真”时,程序 流程将转去执行 “分支语句块1” 中所有语句
若表达式的值为 “假”时,程序 流程将执行“分 支语句块2”中 所有语句
计算机与程序设计基础 (C++)
网络与计算中心
第3章分支条件选择流程控制程序设计 LOGO
1 2 3 4
本 章 概 述 学 习 目 标 主 要 内 容
本 章 小 结
网络与计算中心
第3章分支条件选择流程控制程序设计 LOGO
1
3.1 if分支条件选择结构
2 3 4
3.2 switch开关语句
3.3 条件分支选择结构的综合应用
表达式由逻辑表达式组成
语句块中语句数大于一条时,必须在其前后 表达式由关系和逻辑表达式混合组成
加大括号
语句块中没有有效语义的语句,用一分号代 替语句块中的语句
网络与计算中心
3.1.1单分支条件选择结构语句
单分支结构应用程序举例
【例3.3】编程求两个数中大数并输出。 #include <iostream> using namespace std; int main(){ int a,b,max; cout<<"\n 请输入两个数: "; cin>>a>>b; max=a; if (max<b) max=b; cout<<max<<endl; return 0; }

LOGO
【例3.7】输入x,输出y。x和y满足数学分段函数 关系如下:
网络与计算中心
3.1.4条件分支结构中的if嵌套问题
#include<iostream> using namespace std; int main(){ 注 doublex,y; 意 cout<<“请输入x的值:”<<endl; cin>>x; if(x<-5) y=x; else if(x<1) y=2*x+5; else if(x<4) y=x+6; else y=3*x-2; cout<<”计算结果为:”<<y; }

LOGO
【例3.5】有三个乒乓球,其中两个球的重量相同,要求能用最少的 天平称球次数找到那个重量不一样的球。
#include<iostream> using namespace std; int main(){ int a,b, c; cin>>a>>b>>c; if(a==b) //如果条件成立,说明c球就是要找的球 cout<<”c球就是要找的球!\n”; else if(a==c) //如果条件成立,说明b球就是要找的球 cout<<"b球就是要找的球!\n"; else cout<<"a球就是要找的球!\n"; return 0; }
网络与计算中心
3.2.1 switch开关语句
1. switch语句的格式特点及执行流程
LOGO
switch开关语句的几个关键字:switch、case、default。 switch(整型变量或字符型变量) { case之后可以接常量数值、字符、枚举类型常量 case 常量表达式1 : 分支语句序列一;[break;] case 常量表达式2 : case之后不能接变量或带有变量的表达式 分支语句序列二;[break; ] ...... case 常量表达式n: case之后不能接实型数或带有实数的常量表达式 分支语句序列n;[ break;] default :最后分支语句序列; } //此右大括号}为switch语句的结束符
网络与计算中心
LOGO
表达式
else if(x<1)else if(-5<=x&&x<1)

else if(x<1)else if(-5<=x<1)

表达式
y=2*x+5y=2x+5 y=3*x-2y=3x-2
ⅹ ⅹ
3.1.4条件分支结构中的if嵌套问题
LOGO
if(x>=z) cout<<x<< ''<<z; 【例3-8】输入三个数x, y,z,然后按从大 else cout<<z<<''<<x; 到小输出。 }else{ #include<iostream> cout<<z<< ''; using namespace std; if(x>=y) cout<<x<< ''<<y; else cout<<y<< ''<<x; int main(){ } double x,y,z; } cin>>x>>y>>z; if(x>=y&&x>=z){ 说明: cout<<x<< ''; 这是一个典型的if语句嵌套结构。 if(y>=z) cout<<y<< ''<<z; 如果不使用括号,那么if和else的对 //分支结构中的语句块只有一条语句时, 应关系会很容易变乱。 第8,12,16行开始的三个双分支结构 可这样写 代码书写的形式。当条件语句的语句 else cout<<z<< ''<<y; 块中只有单条语句时,将这一条语句 写到条件判断表达式和else的后面并 }else if(y>=x&&y>=z){ 用空格隔开,。 cout<<y<< '';
网络与计算中心
3.1.4条件分支结构中的if嵌套问题

LOGO
条件嵌套语句的程序书写时 容易出错。
采用缩进形式的程序书写方式将 if-else中 的语句块对应起来,可减少判断错误。
if(x>=0&&x<=100) if(x<=100&&x>=60) cout<<"成绩合格!"<<endl; else cout<<"成绩不合格!"<<endl; else cout<<"输入数据错误"<<endl;
网络与计算中心

3.1.1单分支条件选择结构语句
单分支结构的语法格式与执行流程 语法格式及执行流程: if(表达式) 或 if(表达式){ 语句块 }
真(1)
LOGO
单语句
表达式
假(0)
语句
网络与计算中心
3.1.1单分支条件选择结构语句
单分支结构由三部分组成
表达式由关系表达式
LOGO
if (表达式) 语句块

网络与计算中心
3.1 if分支条件选择结构

LOGO
例如:当顾客购买的商品的总额大于等于400元时,用户 享受商场9折优惠,即用户实际支付的金额是所购买商品 总额的90%;当客户购买商品总金额达到245元以上而少 于400元时,用户享受商场95折优惠;当客户购买商品总 金额达到125元以上低于245元时,用户享受商场97折优 惠。
网络与计算中心
LOGO
3.1.2 双分支条件选择结构语句
双分支结构的语法格式与执行流程
LOGO
if(表达式){ 分支语句块1; }else{ 分支语句块2; }


双分支条件选择结构中使用C++语 言规定的关键字有if和else两种 这两个关键字需要一起配对使用才 能完成双分支条件选择的功能
网络与计算中心
网络与计算中心
3.2.1 switch开关语句执行流程
LOGO
执行流程
表达式
=常量1 语句 1
=常量2 语句 2
=常量3
语句 3
=常量n
语句 n
=常量n+1 语句n+1
3.2.1 switch开关语句

LOGO
【例3.9】网站访问方式调查程序。要求模拟一个 网上调查。它要求网友输入数字以选择自己是如 何知道当前访问的网页的。程序根据网友输入, 打出相应结果。 程序分析
网络与计算中心
3.1.3多分支条件选择语句
1.多分支结构的语法格式与执行流程

LOGO
多分支条件选择结构语法格式如下:
if(表达式1){ 多分支条件选择结构中使用关键字只有 分支语句块1; if、else两种 } else if(表达式2){ 分支语句块2; } …… else if(表达式n-1){ 分支语句块n-1; else{ 分支语句块n; }
第一次运行程序结果: 请输入车速:65 超速! 第二次运行程序结果: 请输入车速:55 正常!
网络与计算中心
3.1.2 双分支条件选择结构语句

LOGO
上述程序也可以使用大括号{}将两分支块中语句 包括起来。 if(velocity>60){ cout<<”超速!“<<endl; } else{ cout<<”正常!“<<endl; }
if(x>=0&&x<=100) if(x<=100&&x>=60) cout<<"成绩合格!"<<endl; else cout<<"成绩不合格!"<<endl; else cout<<"输入数据错误"<<endl;
采用缩进书写格式可以 增加程序的可读性
网络与计算中心
3.1.4条件分支结构中的if嵌套问题
相关文档
最新文档