第3章 选择结构(C++版)

合集下载

第三讲 选择结构程序设计

第三讲 选择结构程序设计

5.3.2 switch语句的一般形式 语句的一般形式 switch(整数表达式) (整数表达式) { case 常数表达式 :<语句 ;> 常数表达式1: 语句 语句1; case 常数表达式 :<语句 ;> 常数表达式2: 语句 语句2; …… case 常数表达式 :<语句 ;> 常数表达式n: 语句 语句n; default: 语句序列 : 语句序列n+1; ; }
5.3 switch语句 语句 5.3.1 问题引入 switch 语句和 语句和if-else语句(if…else if…else)是C语 语句( 语句 ) 语 言的两种多分支选择形式。 言的两种多分支选择形式。 if…else if…else结构用于对多条件并列测试,从中 结构用于对多条件并列测试 结构用于对多条件并列测试, 取一的情形; 取一的情形; switch结构用于 单条件 测试 , 从其多种结果中取一 结构用于单条件测试, 结构用于 单条件测试 种的情形。 种的情形。 一 般 情 况 下 用 switch 能 解 决 的 问 题 , 用 if…else if…else也一样能解决,反之用 也一样能解决, 也一样能解决 反之用if…else if…else能解决的 能解决的 问题用switch也能解决。 也能解决。 问题用 也能解决
5.2.1 if 语句
(4)if-else-if结构: ) 结构: 结构 if ( 条件 ) 语句 ; 条件1 语句1; else if ( 条件 ) 语句 ; 条件2 语句2; else if ( 条件 ) 语句 ; 条件3 语句3; ┇ else 语句 ; 语句n;
F 表达式1 表达式 T 表达式2 表达式 T F 表达式3 表达式 T 语句1 语句 语句2 语句 语句3 语句 F 表达式 T 4 语句4 语句 F 语句5 语句

第3章顺序和选择结构程序设计

第3章顺序和选择结构程序设计

3.3 C语句
1.表达式语句
任何一个表达式加上一个分号就可以组成一条
语句。

例如: 表达式 a=b+c*(d+3) a+b+c i++
表达式语句 a=b+c*(d+3); a+b+c; i++;

函数调用也是表达式,在其后加一个分 号,就变成了函数调用语句。
eg:printf函数调用语句和scanf函数调 用语句
-1.0 (x<0) y= 0 (x=0) 1.0 (x>0)
运行结果: -88 y=-1.000000
3.4.4
if语句的嵌套
条件语句的嵌套就是在if语句中包含另一 个if语句。 从语法上讲,if语句中所包含的语句是一 个语句或一个复合语句,这个语句当然也 可以是另一个if语句,即内嵌if语句。

3.1 程序设计概述




程序设计的最终目的是能在计算机上计算出正确的 结果来。 1969年,Dijkstra首先提出了结构程序设计的概念, 强调从程序的结构和风格上来研究和设计程序。 首先应从全局上把握系统所具备的功能是什么,并 将系统划分成几个相对独立的子系统,而每个子系 统只涉及局部的环境和条件。 然后,进入第二步的实现阶段,即进行编码。在第 一阶段,只要知道“做什么”,而在实现阶段,才 考虑“如何做”。
用交换变量值的方法按顺序输出这两个数


交换变量值的思想: 不改变变量名,但变量值可改变的性质。 若a的值大于b的值,则a与b的值不交换;若a的值 小于b的值,则两者互相交换值。从而使得无论何 时,变量a的值始终大于变量b的值。最后,按先a 后b的顺序输出,即可实现按由大到小的顺序输出 的功能。 实现方法: 为了能够进行相互交换,必须引进一个临时变量 t。用以下三个赋值语句可实现交换。 t=a; a=b;b=t; /*t=a,a=b,b=t;*/

C语言程序设计第3章选择结构程序设计

C语言程序设计第3章选择结构程序设计


!注意 if 与 else 的配对关
系,else总是与它上面最近 的未配对的 if 配对,若if与 else 的数目不一致,可以加 { }来确定配对关系。
整理课件
例:有一函数
y=
-1 0
(x<0) 输入X值,输出Y值。 (x=0)
1 (x>0)
main( ) { int x, y; scanf("%d",&x);
if (x<0) y= -1; else if (x= =0) y=0;
if(x<=0)
else y=1;
if (x= =0) y=0; y= -1;
else y=-1;
if (x>=0)
eplrsientfy(="1x;=%d,y=%d\n{"i,xf ,(yx)>;0) y=1; }
}
else y=0;
整理课件
程序设计基本步骤
定义变量 产生数据 数据处理、计算 输出结果
整理课件

程序举例
编程1:判断某一年是否闰年。 能被4整除但不能被100整除的是闰年; 能被400整除的是闰年。
main( ) { int y; scanf("%d",&y);
if ((y%4==0&&y%100!=0)||(y%400==0)) printf("yes\n",y);
}
15 x 30 30 x 100 100 x 200 其它
整理课件
读程序段
m,n,x,y,z均为整型变量,求执行完该段 程序后各变量的值。
m=10;n=5;
x=(--m==n++)?--m:++n;

C语言高教版第3版第三章三种基本控制结构上课件

C语言高教版第3版第三章三种基本控制结构上课件

„a‟<‘b‟ <‘c‟
关系表达式的值是一个逻辑值,即 【例2.18】判断以下关系表达式的值。 • “真”或“假”。 当 a = 3, b = 2, c = 1,请判断表达式的值 C语言没有逻辑型数据,以1代表“真”, 1. a > b 以“0”代表“假”。 1
2. (a > b) == c
只在a为假时,才判别b的值; 只在a、b都为假时,才判别 c的值
例 a=1;b=2;c=3;d=4;m=1;n=1; (m=a>b)&&(n=c>d)
结果m=0,n=1
【例】逻辑表达式的短路特性。例
复杂逻辑条件的表述
• 判断某一年year是否为闰年 1. 闰年 (year%4==0 && year%100!=0)||(year%400==0)
! 优先级:第2级 结合方向:自右向左
&&
||
优先级:第11级 结合方向:自左向右
优先级:第12级 结合方向:自左向右 /* 等价于(a<=x) && (x<=b)*/ /* 等价于(a>b)&&(x>y) */ /* 等价于 (a==b)||(x==y) */ /* 等价于(!a)||(a>b) */
有一个或多个输出
二、算法的描述工具
自然语言
(通俗易懂, 文字冗长, 容易有“歧义性”)
流程图
(灵活, 自由, 形象, 直观, 易理解, 占篇幅大)
N-S图
(新型流程图, 简洁)
伪代码
(介于自然语言和计算机语言之间, 中英文皆可,格式 自由, 易修改, 不直观, 不容易发现逻辑错误)
计算机语言
(用计算机实现算法, 可以执行出结果, 比如 C 语言)

高中信息学奥赛C++ 第3章 选择结构(C++版)

高中信息学奥赛C++  第3章  选择结构(C++版)

//maxn 为a,b中的最大值 //maxn 为a,b,c中的最大值
三、目运算符 c++有一个常用来代替if else 语句的操作符,这个操作符 被称为三目运算符(?:),它是c++中唯一一个需要3个操作数的 操作符。该操作符的通用格式如下: b?a:c 如果 b为 true ,则整个表达式的值为 a;否则,整个表达 式的值为c。下面两个语句演示了该操作符是如何工作的: x=5>3?10:12 // 5>3为true,所以 x=10; x=3==9?25:18 // 3==9为false,所以 x=18;
#include<iostream> using namespace std; int main() { int t; cin >> t; if ((t>=25) &&(t<=30)) cout<<"ok!\n"; else cout<<"no!\n"; return 0; }
格式2 : if (条件表达式) { 语句1; 语句2; …… } else { 语句1; 语句2; …… } 若分支语句由多个句子构成,我们必须把这些句子括在一 对花括号{ }内。
条件表达式
false
true 语句1
图3-1
程序设计风格提示:从语法上来讲,整个if语句可以写 在一行。如果条件表达式和语句都非常简单,那么整个语句 可以写在一行;否则,最好在条件表达式后换行,而且语句 部分要相对if缩进两格。
例3.1 读入一个整数a,如果a为偶数在屏幕上输出yes #include<iostream> using namespace std; int main( ) { int a; cin>>a; if (a%2==0) cout<<"yes"; return 0; } 注意:关系运算符==用来表达该符号的左右两边是 否相等,不要写成赋值号=。 试一试

C语言程序设计ppt课件-第3章-选择结构

C语言程序设计ppt课件-第3章-选择结构
1.表达式 2. if语句 3. switch语句 4. 选择结构的嵌套 5. 选择结构的应用
本章主要内容
1
选择结构
在解决大量的实际问题时,常常需要根据不同的 情况或条件,制定出不同的解决方案或对策。
选择结构是通过对条件 的判断来选择执行不同 的程序语句。
选择结构
一个程序若具有了判断和选择功 能,就具备了最基本的智能。
的完整的解题步骤。
void main() { int x,y,z,max;
printf("“\n Please input x,y,z: ");
➢将同影一响问到题算可法用乃不至同程算序法的解效决率,sifc(a。xm而n>afy(一一x)"=%x个个;d%算算d法法%d的的",&评质x价,量&y主优,&要z劣); 从时间复杂度和空间复杂度来els考e 虑。
max=y;
例从键盘输入三个不同的、无序if(mm的aaxx整<=zz)数; ,并分别存放 到变量x、y、z中,然后通过pr判int断f("输\n 出ma三x=%个d数\n"中,m的ax)最;
大数。要求将最大数存放在} 变量max中。
25
语法练习(单选题)
1.设x、y和z是int型变量,且x=3,y=4,z=5,则下面表达式中
switch语句的应用
关例键从语键句盘:上输入一个学生的总平均成 绩能用(i大f- e于ls0e且if来小替于换10吗0)? swi,tc按h(分(i数nt段)(评sc定or出e/成10绩.的0)相) 应等级,90以上为A级,80~
{89为caBs级e ,97:0~g7r9a为dCe=级'A,'6;0~br6e9a为k;D级,59以下为E级。 问题分ca析se:s8w:itchg语ra句de中='的B表';达b式re只ak能; 是整型或字符型,所 以可c用as成e 绩7的:高位gr数ad字e=来'C确';定b其re对a应k;的分数段,而每一个 分数c段as又e对6应:swigtrcha中de的='一D'路; 选br择ea。k;可用表达式“((int)(成 绩/1c0)a)s”e 计5算:出成绩的高位数字 ,其中,“(int)”的功能 是将c表as达e式的4:值强制转换成整数。

选择结构(C++版)

选择结构(C++版)
条件表达式
false
true 语句1
图3-1
程序设计风格提示:从语法上来讲,整个if语句可以写 在一行。如果条件表达式和语句都非常简单,那么整个语句 可以写在一行;否则,最好在条件表达式后换行,而且语句 部分要相对if缩进两格。
例3.1 读入一个整数a,如果a为偶数在屏幕上输出yes #include<iostream> using namespace std; int main( ) { int a; cin>>a; if (a%2==0) cout<<"yes"; return 0; } 注意:关系运算符==用来表达该符号的左右两边是 否相等,不要写成赋值号=。 试一试
例3.5 输入温度t的值,判断是否适合晨练。(25<=t<=30, 则适合晨练ok,否则不适合no)
#include<iostream> using namespace std; int main() { int t; cin >> t; if ((t>=25) &&(t<=30)) cout<<"ok!\n"; else cout<<"no!\n"; return 0; }
若题目改为“读入一个整数a,如果a为入一个数,若这个数大于1并且小于100,则输出yes
# include<iostream> using namespace std; int main ( ) { int a; cin>>a; if ((a>1)&&(a<100)) cout<<"yes"; return 0; } 注意:此程序中的条件表达式为(a>1)&&(a<100),根据要 求 “条件表达式”必须用圆括号括起来,否则编译会出错。

C语言程序设计第3章 选择结构流程和应用

C语言程序设计第3章 选择结构流程和应用

2 单分支和双分支选择结构程序设计
简单if语句 if-else语句 条件运算符与条件表达式

简单if语句
学一学 简单if语句的形式为: if ( 条件表达式 ) 语句
其流程图如图3-1所示。语句的执 行过程是先计算“条件表达式”, 若值为“真”,则执行“语句”; 否则什么也不做。此处的“语句” 可以是简单语句,也可以是用一对 大括号“{ }”括起来的复合语句。
本章内容中我们将学习 1 选择结构判定条件的构成 2 单分支与双分支选择结构程序设计 3 多分支选择结构程序设计
1 选择结构判定条件的构成
关系运算符与关系表达式 逻辑运算符与逻辑表达式

关系运算符
关系运算是对两个操作数之间进行比较的运算符,其 运算结果为逻辑值(或称“布尔”值,boolean) “真”或“假”。 C语言中提供六种关系运算符,如 表3-1所示。
条件
Y
N
语句
试一试
问题3.4 从键盘输入一个数,输出其绝对值。 解题步骤 1.定义变量二个int变量iX,iY,其中iX用来接收 用户从键盘输入的数据,iY用来存放iX的绝对值。 2.从键盘输入一个整数放iX; 3.把iX放iY; 4.正数的绝对值是正数本身,负数的绝对值是其 相反数。所以,如果iX<0,则iY= -iX,否则不 需要做什么; 5.输出iX和iY。
练一练

问题:小明去参加一个同学的生日聚会, 同学的家长规定18岁以上的才可以饮酒, 所以需要编一程序根据输入的年龄打印一 张饮酒卷,使的能饮酒的同学可以获取饮 酒卷。
if-else语句
学一学 if-else语句是标准的if语句。 用来实现双分支选择结构, 其一般形式为: if ( 条件 ) 语句1; else 语句2;

C#第3章

C#第3章
单入口双分支 单入口三分支(如上面的if语句实现的选择结构) 单入口多分支(三个或三个以上的分支)
对于这些选择结构,除了可以利用if语句来实现以 外,还可以用switch语句来完成。
3.2 if语句——二分支选择语句
C#程序设计教程——蒙祖强编著
为表述方便,我们将if语句分为三种类型:
if…语句
C#程序设计教程——蒙祖强编著
Console.Write("请输入出行月份(1-12):"); 游客在其他月份出行,怎样出现提示信息? int mon = int.Parse(Console.ReadLine()); if (mon >= 5 && mon <= 10) { Console.WriteLine("旺季出行,机票不打折"); } else { Console.WriteLine("淡季出行,机票打折"); } Console.ReadLine();
3.2 if语句——二分支选择语句
C#程序设计教程——蒙祖强编著
3.2.2 if…else…语句(续)
【例3.3】 编写一个窗体应用程序,使之能够对给 定的实数进行四舍五入。 创建C#窗体应用程序Rounding,界面如下图:
3.2 if语句——二分支选择语句
C#程序设计教程——蒙祖强编著
3.2.2 if…else…语句(续)
——分段函数的实现
C#程序设计教程——蒙祖强编著
【例3.1】 构造一个C#控制台应用程序,使之实 现下列分段函数的功能:
3.1一个简单的选择结构程序
——分段函数的实现
C#程序设计教程——蒙祖强编著
3.1.1 创建C#控制台应用程序 创建一个控制台应用程序PiecewiseFunction:

03-选择结构程序设计

03-选择结构程序设计
军事交通学院
计算机教研室
C语言笔试—3-27
switch 语句
考点1:switch 语句
switch(表达式) { case 常量表达式1: 语句1; break; case 常量表达式2: 语句2; break; case 常量表达式3: 语句3; break; default: 语句4; } 计算机教研室
<
>
小于
大于
<= 小于等于
>= 大于等于
军事交通学院
计算机教研室
C语言笔试—3-7
选择结构基本概念
考点1:关系运算和逻辑运算 3、关系运算 例1:若 a=5, b=3, c=1,则: a>b>c 的值为______。 例2:若 a=5, b=3, c=1, d=0, 则: d=b>c!=a 的值为______。
B)和之前与其最近的 if 配对; C)和之前与其最近的且不带 else 的 if 配对; D)和之前的第一个 if 配对。
军事交通学院
计算机教研室
C语言笔试—3-23
if 语句与条件表达式
例9:[2008年9月]有以下程序 #include <stdio.h> main( ) { int x=1, y=2, z=3; if(x>y) if(y<z) printf("%d", ++z); else printf("%d", ++y); printf(“%d\n”, x++); } 程序的运行结果是( )。 A)331 B)41 C)2
结束
军事交通学院
结束
计算机教研室
C语言笔试—3-5

第3章--选择结构--参考答案

第3章--选择结构--参考答案
#include <stdio.h>
main( )
{
int k;
scanf("%d",&k);
switch (k)
{
case 1: printf("%d\n",k++);
case 2: printf("%d\n",k++);
case 3: printf("%d\n",k++);
case 4: printf("%d\n",k++); break;
default: printf("Full!\n");
}
}
A) 1 B) 2
C) 2 D) 1
3 2
4 3
5 4
D
29.执行下面程序时,若从键盘输入"2<CR>",则程序的
运行结果是( )。
#include <stdio.h>
main( )
{ int j,k; char cp;
cp=getchar( );
顺序分支结构选择题:
1.设ch是char型变量,其值为A,且有下面的表达式:
ch=(ch>='A'&&ch<='Z')?(ch+32):ch
上面表达式的值是
A) A B) a
C) Z D) z
B
2.设a,b和c都是int型变量,且a=3,b=4,c=5,则下面的表达式中,
值为0的表达式是
A) 'a'&&'b' B) a<=b

第3章 选择结构(C++版)

第3章  选择结构(C++版)


选择类语句包括if语句和switch语句,用它们来解决实际 应用中按不同的情况进行不同处理的问题。如根据学生的成 绩,对学生做出不同的等第评价。if选择结构称为单分支选 择结构,选择或忽略一个分支的操作。if/else选择结构称为 双分支选择结构,在两个不同分支中选择。switch选择结构 称为多分支(或多项)选择结构,以多种不同的情况选择多 个不同的操作。 • 循环类语句包括for循环语句、while循环语句和do循环语 句三种,用它们来解决实际应用中需要重复处理的问题。如 当统计全班同学总分时,就需要重复地做加法,依次把每个 人的分数累加起来。
【上机练习】
•7.收集瓶盖赢大奖【1.4编程基础之逻辑表达式与条件分支07】 • 某饮料公司最近推出了一个“收集瓶盖赢大奖”的活动:如果你拥有10个印 有“幸运”、或20个印有“鼓励”的瓶盖,就可以兑换一个神秘大奖。现分别 给出你拥有的印有“幸运”和“鼓励”的瓶盖数,判断是否可以去兑换大奖。 若可以兑换大奖,输出1,否则输出0。 •输入: • 一行,包含两个整数,分别是印有“幸运”和“鼓励”的瓶盖数,用一个空 格隔开。 •输出: • 一行。若可以兑换大奖,输出1,否则输出0。 •样例输入: • 11 19 •样例输出: • 1
【上机练习】
•4.奇偶ASCII值判断【1.4编程基础之逻辑表达式与条件分支04】 • 任意输入一个字符,判断其ASCII是否是奇数,若是,输出YES,否则,输出 NO。例如,字符A的ASCII值是65,则输出YES,若输入字符B(ASCII值是66),则输 出NO。 •输入: • 输入一个字符。 •输出: • 如果其ASCII值为奇数,则输出YES,否则,输出NO。 •样例输入: • A •样例输出: • YES
例3.5 输入温度t的值,判断是否适合晨练。(25<=t<=30,则 适合晨练ok,否则不适合no)

第3章 基本的程序流程控制结构

第3章 基本的程序流程控制结构
3.3.5 选择结构程序举例
计算机程序设计基础(C语言) 3.3 选择结构的流程控制
3.3.1 条件判断
在顺序结构中,各语句是按排列的先后次序顺序执行的, 是无条件的,不必事先作任何平判断。但在实际中,常常 有这样的情况:要根据某个条件是否成立决定是否执行指 定的任务。例如: 如果你在家,我去拜访你; (需要判断你是否在家) 如果考试不及格,要补考; (需要判断是否及格) 周末我们去郊游; (需要判断是否是周末) 如果x>y,输出x,否则输入y。 (需要判断x是否大于y) 判断的结果应该是一个逻辑值:“是”或“否”,在计算 机语言中用“真”和“假”表示。例如,当x>y时,满足 “x>y”条件,就称条件“x>y”为真,如果x≤y,不满足 “x>y”条件,就称条件“x>y”为假。
}
计算机程序设计基础(C语言)
例3.3 求4个数中的最大值。
算法分析:程序的功能是输入4个数给a,b, c,d。把a先赋予变量max,再用语句判别 max和b的大小,如max小于b,则把b赋予 max。同理,max继续跟c和d比较即可使 得max中总是大数,最后输出max的值就 是4个数中的最大值。


计算机程序设计基础(C语言)
在判定两个浮点数是否相等时,由于计算机存储上 出现的误差,会出现错误的结果。例如: 1.0/3.0*3.0==1.0 在数学上显然应该是一个恒等式,但由于1.0/3.0得 到的值的有效位数是有限的,并不等于,因此上 面关系表达式的值为0(假),而不为1(真)。 所以应避免对两个实数表达式作“相等”或“不 相等”的判定。上式可以改写为: fabs(1.0/3.0*3.0-1.0)<1e-5
计算机程序设计基础(C语言) 3.3 选择结构的流程控制

C语言程序设计 第3章 选择结构 -

C语言程序设计 第3章 选择结构 -
}
如果条件满足了,就执行{}里的语句, 如果条件不满足,直接越过{}里的语句。
3.2 关系运算符与关系表达式
关系运算符
< (小于) <= (小于或等于) > (大于) >= (大于或等于) == (等于) != (不等于)
3.2 关系运算符与关系表达式
关系表达式: 用关系运算符将两个表达式连接起来的式子
case 常量表达式2:语句2; ... default:语句n+’键向上运动,‘s’键向下运动, ‘a’键向左运动,‘d’键向右运动。
char ch = getch(); // 获得按键按下的值
switch(ch){ case 'w' : row = row - 1; case 's': row = row + 1; case 'a' : col = col - 1;
a > 60 x == 1 关系表达式的值是一个逻辑值,即“真”或“假”。
3.2 关系运算符与关系表达式
C语言中, 1表示“真”,0 表示“假”
例: 5 > 3 为真,值为1。 2 == 3 为假,值为0。 (2 > 3) == (3 > 5) 为真,值为1,
3.2 关系运算符与关系表达式
例:当按下‘w’键,方块向上运动
3.3 逻辑运算符与表达式
逻辑运算符
&& (逻辑与) || (逻辑或) ! (逻辑非) 运算规则: a&&b 若a,b为真,则a&&b为真。 a||b 若a,b之一为真,则a||b为真。 !a 若a为真,则!a为假。
3.3 逻辑运算符与表达式
逻辑表达式: 用逻辑运算符将关系表达式连接起来的 式子
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

【上机练习】
8.判断一个数能否同时被3和5整除【1.4编程基础之逻辑表达式与条件分支08】 判断一个数n 能否同时被3和5整除,如果能同时被3和5整除输出YES,否则
输出NO。 输入: 输入一行,包含一个整数n。( -1,000,000 < n < 1,000,000) 输出: 输出一行,如果能同时被3和5整除输出YES,否则输出NO。 样例输入: 15 样例输出: YES
【上机练习】
4.奇偶ASCII值判断【1.4编程基础之逻辑表达式与条件分支04】 任意输入一个字符,判断其ASCII是否是奇数,若是,输出YES,否则,输
出NO。例如,字符A的ASCII值是65,则输出YES,若输入字符B(ASCII值是 66),则输出NO。 输入: 输入一个字符。 输出: 如果其ASCII值为奇数,则输出YES,否则,输出NO。 样例输入: A 样例输出: YES
【上机练习】
7.收集瓶盖赢大奖【1.4编程基础之逻辑表达式与条件分支07】
某饮料公司最近推出了一个“收集瓶盖赢大奖”的活动:如果你拥有10个印 有“幸运”、或20个印有“鼓励”的瓶盖,就可以兑换一个神秘大奖。现分别 给出你拥有的印有“幸运”和“鼓励”的瓶盖数,判断是否可以去兑换大奖。 若可以兑换大奖,输出1,否则输出0。 输入: 一行,包含两个整数,分别是印有“幸运”和“鼓励”的瓶盖数,用一个空 格隔开。 输出: 一行。若可以兑换大奖,输出1,否则输出0。 样例输入: 11 19 样例输出: 1
格式2 :
if (条件表达式) { 语句1; 语句2; …… } 若条件成立时,要执行的操作由多个句子构成, 我们必须把这些句子括在一对花括号{ }内,我们称 这种形式为语句块或复合语句。 程序设计风格提示:书写语句块(也称为复合 语句)时,左右花括号要对齐,组成语句块的各语 句要相对花括号缩进一层并对齐。
条件表达式
false
true 语句1
图3-1
程序设计风格提示:从语法上来讲,整个if语句可以写 在一行。如果条件表达式和语句都非常简单,那么整个语句 可以写在一行;否则,最好在条件表达式后换行,而且语句 部分要相对if缩进两格。
例3.1 读入一个整数a,如果a为偶数在屏幕上输出yes #include<iostream> using namespace std; int main( ) { int a; cin>>a; if (a%2==0) cout<<"yes"; return 0; } 注意:关系运算符==用来表达该符号的左右两边是 否相等,不要写成赋值号=。 试一试
若题目改为“读入一个整数a,如果a为奇数在屏幕 上输出no”该如何修改程序?
例3.2 读入一个数,若这个数大于1并且小于100,则输出yes
# include<iostream> using namespace std; int main ( ) { int a; cin>>a; if ((a>1)&&(a<100)) cout<<"yes"; return 0; } 注意:此程序中的条件表达式为(a>1)&&(a<100),根据要 求 “条件表达式”必须用圆括号括起来,否则编译会出错。
【上机练习】
5.整数大小比较【1.4编程基础之逻辑表达式与条件分支05】 输入两个整数,比较它们的大小。若x>y,输出>;若x=y,输出=;若x<y,
输出<。 输入: 一行,包含两个整数x和y,中间用单个空格隔开。0<=x<2^32, 2^31<=y<2^31。 输出: 一个字符。若x > y,输出 > ;若x = y,输出 = ;若x < y,输出 < ; 样例输入: 1000 100 样例输出: >
二、if-else语句(双分支结构) if单分支选择结构只在条件为true时采取操作,条件为 false时则忽略这个操作。利用if-else双分支选择结构则可 以在条件为true时和条件为false时采取不同操作。 格式1: 功能:如果(条件表达式)的值为“真” ,即条件 成立,则执行语句1,执行完“语句1”后继续执行整个if- else语句的后继语句;如果(条件表达式)的值为“假” , 即条件不成立,那么跳过语句1选择执行“语句2” ,执行 完语句2后继续执行整个if-else语句的后继语句;也就是 说if-else语句总是根据(条件表达式)的结果,选择 “语句1”和“语句2”中的一个执行,执行完以后,整个if -else就算执行完了。执行流程如图4-2所示
1.判断数正负【1.4编程基础之逻辑表达式与条件分支01】 给定一个整数N,判断其正负。如果N>0,输出positive;如果N=0,输出
zero;如果N<0,输出negative。 输入: 一个整数N(-10^9 <= N <= 10^9) 输出: 如果N > 0, 输出positive; 如果N = 0, 输出zero; 如果N < 0, 输出negative 样例输入: 1 样例输出: positive
格式2 : if (条件表达式) { 语句1; 语句2; …… } else { 语句1; 语句2; …… } 若分支语句由多个句子构成,我们必须把这些句子括在 一对花括号{ }内。
例3.6 乘坐飞机时,当乘客行李小于等于20公斤时,按每公 斤1.68元收费,大于20公斤时,按每公斤1.98元收费,编程 计算收费(保留2位小数)。 #include<cstdio> using namespace std; int main( ) { float w, p; scanf("%f",&w); if (w<=20) printf("%.2f",w*1.68); else printf("%.2f",w*1.98); return 0; } if语句允许嵌套,即语句1和语句2还可以是if语句,当if 语句嵌套时,约定else总是和最近的一个if语句配对。
例3.7 if (a>b) if (b>c) y=a; else y=c; else部分否定的是条件b>c,即它与第二个if语 句配对;若想让else部分与第一个if语句配对,则要 引入一个复合语句,将上述语句写成如下形式:
if (a>b) { if (b>c) y=a; } else y=c;
【上机练习】
【上机练习】
6.判断是否为两位数【1.4编程基础之逻辑表达式与条件分支06】 判断一个正整数是否是两位数(即大于等于10且小于等于99)。若该正整数是
两位数,输出1,否则输出0。 输入: 一个正整数,不超过1000。 输出: 一行。若该正整数是两位数,输出1,否则输出0。 样例输入: 54 样例输出: 1
【上机练习】
9.判断能否被3,5,7整除【1.4编程基础之逻辑表达式与条件分支09】
给定一个整数,判断它能否被3,5,7整除,并输出以下信息: 1、能同时被3,5,7整除(直接输出3 5 7,每个数中间一个空格); 2、只能被其中两个数整除(输出两个数,小的在前,大的在后。例如:3 5或者 3 7或 者5 7,中间用空格分隔); 3、只能被其中一个数整除(输出这个除数); 4、不能被任何数整除,输出小写字符‘n’,不包括单引号。 输入: 输入一行,包括一个整数。 输出: 输出一行,按照描述要求给出整数被3,5,7整除的情况。 样例输入: 105 样例输出: 357
【上机练习】
3.奇偶数判断【1.4编程基础之逻辑表达式与条件分支03】 给定一个整数,判断该数是奇数还是偶数。如果n是奇数,输出odd;如果n
是偶数,输出even。 输入: 输入仅一行,一个大于零的正整数n。 输出: 输出仅一行,如果n是奇数,输出odd;如果n是偶数,输出even。 样例输入: 5 样例输出: odd
if (条件表达式) 语句1; else 语句2;
true
条件表达式
flase
程序设计风格提示:书 写if-else语句时,if和else 要对齐,而分支的语句部分 要缩进两格。
语句块1
语句块2
图3-2
例3.4 根据用户输入的成绩,判断是否通过了考试。 #include<iostream > using namespace std; int main() { int c; cin >> c; if (c>=60) cout<<"pass! \n"; else cout<<"sorry!\n"; return 0; }
例3.5 输入温度t的值,判断是否适合晨练。(25<=t<=30, 则适合晨练ok,否则不适合no)
#include<iostream> using namespace std; int main() { int t; cin >> t; if ((t>=25) &&(t<=30)) cout<<"ok!\n"; else cout<<"no!\n"; return 0; }


if、else、switch、while、do和for等都是C++关键字。 这些关键字是该语言保留的,用于实现C++控制结构的不同 特性。关键字不能作为变量名等一些标识符。注意,将关键 字while的拼写变为“While”是个语法错误,因为C++是区分 大小写的语言。while、if和else等所有C++保留关键字只能 包含小写字母。
相关文档
最新文档