第3章 运算符和条件结构
第3章 算法的基本控制结构

C程序设计与应用教程 3.1 C语句概述
3.1.1 C语言的基本语句 2.控制语句 表3-1 C语言的控制语句汇总 if~else switch( )~ while( )~ do~while( ) for( )~ continue break return goto
选择结构 条件语句 控制 开关语句 while循环语句 循环结构 do循环语句 控制 for循环语句 结束本次循环语句 其它控制 终止执行switch或循环语句 语句 从函数返回语句 转向语句
在C语言的基本数据类型中,没有逻辑型。C语言规定: 任何非0的数据都是“真”,0为“假”。逻辑运算的运 算结果和关系运算的结果一样,为“真”即为1,为“假” 即为0。
表达式中如果出现了多个逻辑运算符,C语言规定其优 先级次序为:!最高,&&次之,||最低。逻辑运算符具 有自左至右的结合性。
C程序设计与应用教程 3.3 选择结构的流程控制
C程序设计与应用教程 3.1 C语句概述
3.1.2 三种基本结构和流程控制语句
S1 S2
Y S1
条 件
N S2
条 件Y S1
N
(a)
(b)
(c)
图3-1 三种基本的结构
C程序设计与应用教程 3.1 C语句概述
3.1.2 三种基本结构和流程控制语句
C语言中的语句是按它们在程序中出现的顺 序逐条执行的; 选择结构的实现有if语句和switch语句; 循环结构的实现有while语句、do~while语 句和for语句。
表达式 真 语句
假
图 3-2 不 含 else 的if 语句的执行 流程
C程序设计与应用教程 3.3 选择结构的流程控制
3.3.2 if 语句 比较如下①②两种情况,哪个可以真正实现:如果 x小于y,则交换x和y的值?why???
Java编程基础及应用第3章运算符、表达式和语句

(1)左移位运算符
左移位运算符的符号为“<<”,是二元运算符。左移位运算符左
面的操作元称为被移位数,右面的操作数称为移位量。
例如:a<<n运算的结果是通过将a的所有位都左移n位,每左移一 个位,左边的高阶位上的0或1被移除丢弃,并用0填充右面的低位 。
3.1.5 移位运算符
(2)右移位运算符
3.1.7 条件运算符
条件运算符是一个多元运算符,它的符号是“? : ”,需要连接三
个操作数,用法如下:a?b:c,要求a的值必须为boolean型数据 。运算法则是:当a的值为true时,a?b:c运算的结果是b的值;
当a的值是false时,a?b:c运算的结果是c的值。
例如: 8>2?10:20的结果是10;
// DevideTest2.java public class DevideTest2 { public static void main(String[] args) { int a = 13, b = 4, k; float f1, f2; k = a / b;//整数相除,结果仍为整数 f1 = a / b;//将整数结果强制转换为浮点型 f2 = (float) a / b;//将a强制转换为浮点 型,结果则为浮点型
(4)“按位异或”运算符
“^”是双目运算符。对两个整型数据a、b按位进行异或运算,运 算结果是一个整型数据c。运算法则是:如果a、b两个数据对应位
相同,则c的该位是0,否则是1。
例如:1001001和0101001进行“异或”运算,表达如下, 1001001 ^0101001 1100000
按照运算类型,可以将运算符分成以下几类:算术运算符,关系
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语言第03章

活期存款一年后本息和为: p1=p0(1+r1) 一年期定期存款,一年后本息和为: p2=p0(1+r2) 两次半年定期存款,一年后本息和为:
r3 r3 p3 = p0(1 + )(1 + ) 2 2
6
3.1顺序程序设计举例
算法:
输入p0,r1,r2,r3的值 计算p1=p0(1+r1) 计算p2=p43; r 3 )
2 2
输出p1,p2,p3
7
3.1 顺序程序设计举例
#include <stdio.h> 定义变量同时赋予初值 int main ( ) {float p0=1000, r1=0.0036,r2=0.0225, r3=0.0198, p1, p2, p3; p1 = p0 * (1 + r1); p2 = p0 * (1 + r2); p3 = p0 * (1 + r3/2) * (1 + r3/2); printf(”%f\n%f\n%f\n”,p1, p2, p3); return 0; }
\„ \ddd \“ 单引号 例 void main() { printf(“Y\b=\n”);\xhh 3位8进制数代表的字符 aaa }
转义字符:反斜线后面跟一个字符或一个代码值表示
<
双引号 运行结果: 2位16进制数代表的字符 屏幕显示:= 15 打印机输出:¥
C语言程序设计
第3章 最简单的C程序设计
19
C语言程序设计
第3章 最简单的C程序设计
3.2.3不同类型数据间的转换
1.隐式转换
什么情况下发生
运算转换------不同类型数据混合运算时 赋值转换------把一个值赋给与其类型不同的变量时 输出转换------输出时转换成指定的输出格式
C++语言程序设计第3章

优先级和结合性:
先乘除,后加减,同级自左至右。
Page 20
3.3.1 算术运算符和表达式
例: float f = 3.5; int n = 6; long k = 21; double ss = f*n + k/2;
Page 21
3.3.2 自加自减运算符和表达式
运算符 ++ ++ ---
名字 增量(前缀) 增量(后缀) 减量(前缀) 减量(后缀)
▪ 字符数据在内存中的存储形式 - 以ASCII码存储,占1字节,用7个二进制位
Page 14
3.2.2 变量和常量—字符型数据
▪ 字符串常量
例:"CHINA" "a" 'a'
C H I N A \0 a \0 a
所以:char c;
c="a";
Page 15
3.2.2 变量和常量—布尔型数据
▪ 布尔型变量的说明: 例:bool flag;
Union
Unsigned
Class
Const_cast Delete
Friend Public Try Asm Except
Inline
Mutable
Reinterpret_c ast
Typeid
Typename
Namespac e
Static_cast
New Template
Using
Virtual
▪ 布尔型数据的取值: 只有 false 和 true 两个值
▪ 整型数与布尔变量的转换: - 非0整数隐式转换成true,整数0隐式转
换成false; - true转换成1, false转换成0;
《Java语言程序设计》教案

第3节变量与常量
1.常量
2.变量
3.课堂案例
第4节运算符
1.赋值运算符“=”
2.算术运算符+、-、*、/、%
3.自增自减运算符
4.比较运算符>;<;==;>=;<=;!=
5.逻辑运算符&&;||;!
6.三目运算符
7.运算符的优先级
第5节数据类型转换
1.自动类型转换
2.强制类型转换
5、计算1*2*3*4*……*10的结果。
6、输入一个大于0的整数放入到变量n中,计算1+2+3+……+(n-1)+n的结果。
7、输入一个整数放入到变量n中,如果这个整数大于0,那么计算1+2+3+……+(n-1)+n的结果,否则输出“输入的数据有错误”。
8、循环输入5个学生的成绩,计算这5个学生的总分,及平均分。
教学内容
备注
第5章数组和字符串
第1节数组
1.一维数组的声明与创建
2.一维数组的初始化
3.二维数组的创建与初始化
4.课堂案例——数组元素排序
第2节String类
1.声明并创建字符串(常用)
2.使用字符数组创建字符串
3.连接字符串连接字符串“Hello”和“Java”
4.连接其他数据类型
5.获取字符串长度
比如:输入abc输入def输入Esc
就输出abcdef
12.输出1000以内的水仙花数
13.使用do-while实现:输出摄氏温度与华氏温度的对照表,要求它从摄氏温度0度到250度,每隔20度为一项,对照表中的条目不超过10条。
第3章 C语言的运算符

普通高等教育“十一五 ” 国家级规划教材
3.2. 算术运算符与算术表达式
3、C语言的运算符和表达式
3.1.2 运算符的优先级和结合性
例如:
普通高等教育“十一五 ” 国家级规划教材
3*5/3 :表达式中出现了二个运算符即*和/。按 照优先级的次序,5的两侧“*”和“/”优先级相同, 则按结合性处理。“*”和“/”运算符的结合性为从 左到右,则先乘后除,表达式的值为5。
d=a+b-c :表达式中出现了三个运算符即=(赋 值)、+、-。按照优先级的次序,加和减的运算优先 级相同,而赋值运算符优先级较低。根据加和减的结 合性是从左到右,因此先计算加,再计算减,最后进 行赋值。
3 C语言的运算符和表达式
普通高等教育“十一五 ” 国家级规划教材
3.1.1运算符的优先级和结合性
注意所有的单目运算符、赋值运算符
和条件运算符都是从右向左结合的,要 予以特别关注,其余均为从左向右结合 的,与习惯一致。
普通高等教育“十一五 ” 国家级规划教材
学习 C语言的运算符,不仅要掌握各种 运算符的功能,以及它们各自可连接的运算 对象个数,而且还要了解各种运算符彼此之
普通高等教育“十一五 ” 国家级规划教材
第3章 运算符与表达式
作为一种程序设计语言,C 语言规定了一套严密的字符 集和语法规则,程序设计就是根据这些基本字符和语法规则
C语言程序设计ppt课件-第3章-选择结构

本章主要内容
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语言程序设计第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;
第3章基本结构程序设计主要内容C语言的基本语句、程序

3.2.2
数据的输入输出
输入:指将数据送入计算机 输出:指将计算机处理的结果数据送出保存或显示出来。 ◆C语言中,数据输入/输出是由库函数完成。 ◆使用库函数时,用预编译命令将有关“头文件” 包括到源文件中。 ◆标准输入输出库函数: “stdio.h”文件 ◆源文件开头应有以下预编译命令: #include < stdio.h > #include "stdio.h"
例3.2
依次读入30个学生成绩,输出平均成绩及最高成绩
具体算法描述: s1:0=>I s2:0=>sum,0=>max s3:读入一个学生成绩存入score s4:I+1=>I s5;sum+score=>sum s6:如果score大于max,则score=> max s7:如果I小于30,转移至s3 s8: sum/30=>average s9:打印average,max
3.1.1
算法
1.算法:是解决问题的一系列操作步骤的集合。 例3.1 求解一元二次方程ax2+bx+c=0(a≠0)的两个根。 s1:输入数据 a,b,c s2:求根x1,x2 s3:输出结果 可以将求解算法(s2)进行细化设计如下: s2_1:输入数据 a,b,c s2_2:求判别式d的值,d=b*b-4*a*c s2_3:判断:如果d>=0,则按实根求法计算: x1=(-b+sqrt(d))/(2*a) x2=(-b-sqrt(d))/(2*a) 否则,按复根求法计算: 实部 r=-b/(2*a) 虚部 p=±sqrt(-d)/(2*a)
算术运算
2. 逻辑运算符与逻辑表达式
由逻辑运算符连接关系表达式而形成的式子称为逻辑表达式。
第3章 选择与循环

3.1 条件表达式
在设计条件表达式时,如果能够大概预测不同条件失败的 概率,并将多个条件根据“and”和“or”运算的短路求 值特性进行组织,可以大幅度提高程序运行效率。例如, 下面的函数用来使用用户指定的分隔符将多个字符串连接 成一个字符串,如果用户没有指定分隔符则使用逗号。
>>> def Join(chList, sep=None): return (sep or ',').join(chList) >>> chTest = ['1', '2', '3', '4', '5'] >>> Join(chTest) '1,2,3,4,5' >>> Join(chTest, ':') '1:2:3:4:5' >>> Join(chTest, ' ') '1 2 3 4 5'
3.1 条件表达式
>>> if 3: #使用整数作为条件表达式 print(5) 5 >>> a = [1, 2, 3] >>> if a: #使用列表作为条件表达式 print(a) [1, 2, 3] >>> a = [] >>> if a: print(a) else: print('empty') empty
3.2.1 单分支选择结构
if 表达式: 语句块 a,b=input('Input two number:') if a>b: a,b=b,a print a,b
《Java程序设计基础》第3章:流程控制

控制循环
控制循环是在循环执行过程中改变循环条件或跳出循环的语句。
1 break语句
break语句用于跳出当前循 环或switch语句。
2 continue语句
3 return语句
continue语句用于跳过本次 循环中的剩余代码,进入下 一次循环。
return语句用于结束方法的 执行,并返回一个值。
分支结构
分支结构根据条件的真假选择执行பைடு நூலகம்同的代码块。
if语句
if语句根据条件是否成立来执行不同的语句块。
if-else-if语句
if-else-if语句可以根据多个条件判断选择执行不同 的代码块。
if-else语句
if-else语句根据条件的真假执行不同的代码块。
switch语句
switch语句根据某个表达式的值选择执行相应的代 码块。
方法的返回值
方法可以有返回值,用于将计算结果或特定的值 返回给调用者。
方法的参数传递
方法可以接受参数,用于传递数据给方法进行处 理。
数组的基本概念
数组是一种存储多个相同类型元素的数据结构。
声明数组
声明数组即定义数组的类型和名称。
初始化数组
初始化数组即为数组的元素赋初值。
数组的遍历
数组的遍历即对数组中的每个元素进行访问和操 作。
方法和数组
方法和数组是在流程控制中广泛使用的工具。
静态方法
静态方法是属于类的,可以直 接调用而不需要创建对象。
非静态方法
非静态方法是属于对象的,需 要通过对象来调用。
方法重载
方法重载是指在一个类中定义 多个同名方法,但参数类型或 个数不同。
递归方法
递归方法是指在方法内部调用自身的方法。
北大青鸟C语言教程--第三章 运算符

ACCP V4.0
复合赋值运算符
运算符 += -= *= /=
表达式 X += 5 X -= 5 X *= 5 X /= 5
计算 X=X+5 X=X-5 X=X*5 X=X/5
结果(假设 X=10) 15 5 50 2
%=
X %= 5
X=X%5
0
8
ACCP V4.0
示例
#include <stdio.h> void main () book_price=book_price+12.50; { float book_price = 60.75; printf("\n 书的价格 = %f",book_price); book_price += 12.50; printf("\n 书的新价格 =%f\n",book_price); }
请输入一个字符:T 您输入的字符不是小写字母
25
ACCP V4.0
#include <stdio.h> void main() { float rate1,rate2,rate3; 问题描述: double discount,total; 接受用户输入的三种商品的价格。如果购买的三种商品中 printf("\n请输入第一种商品的价格:"); scanf("%f",&rate1); 至少有一种商品的价格大于 50 或者三种商品的总额大于 printf("\n请输入第二种商品的价格:"); scanf("%f",&rate2); 100,则折扣率为15%,否则折扣率为0,计算并显示用 printf("\n请输入第三种商品的价格:"); 户应付的钱数。 scanf("%f",&rate3); total=rate1+rate2+rate3; if((rate1>50)||(rate2>50)||(rate3>50)||(total>100)) if((rate1>50)||(rate2>50)||(rate3>50)||(total>100)) { 输出: discount=0.15*total; total=total-discount; 请输入第一种商品的价格:34 printf("\n折后总价为:%6.2f\n",total); 请输入第二种商品的价格:42 } else 请输入第三种商品的价格:38 printf("\n总价为:%6.2f\n",total); 折后总价为:96.90 } 26 ACCP
C语言第3~4章a

3.1 if语句
一、两种形式 形式一 if(表达式)语句; 例如:if ( a>b ) x=a ; 形式二 if(表达式)语句1;else 语句2 例如:if ( a>b ) x=a ; else x=b;
a>b Y x=a
13
N
Y
a>b
N
x=a
x=b
P28例3.1、3.2
14
改为将任意两个整数按大小顺序输出
表达式表达式表达式表达式表达式表达式逻辑运算规则真值表xxyyxyxy0000000011001100111111000011001111111100逻辑表达式的值为0赋值表达式构成的逻辑表达式逻辑表达式的值为0逻辑表达式构成的逻辑表达式算术表达式构成的逻辑表达式逻辑表达式的值为1297397关系表达式构成的逻辑表达式逻辑表达式的值为1逻辑表达式的值为110一点说明
32
学生成绩管理
输 入 模 块
处 理 模 块
查 询 模 块
输 出 模 块
… 统 计 平 均 成 绩
… 按 成 绩 排 序 按 学 号 查 询
… 按 姓 名 查 询
…
返回第五章 33
循环的概念
例:计算数学式 s=1+2+3+4+…+99+100 将上式改写成 s=((…((0+1)+2)+3)+…+99)+100) 再将括号中的每一次求和单独分离出来,写成: s1=0+1 (1) s2= s1 +2 (2) s3= s2 +3 (3) S=0; … … i=1; s100= s99 +100 (100)
(1) !( c-’a’ ) 0 (2) a <= c|| f <= c 2<=97 3<=97 (3) ( a=0 ) && ( f=4 )
C语言(第三章)(上)

• 早期 语言不提供专门的逻辑(布尔)类型,规定用非 值表示“真”,用0 早期C语言不提供专门的逻辑 布尔)类型,规定用非0值表示 语言不提供专门的逻辑( 值表示“ 值表示“ 值表示“假”。 • 表达式,只要值为非 (包括负数),就说明其为“真”;只要其值为 ,就 表达式,只要值为非0(包括负数),就说明其为“ ),就说明其为 只要其值为0, 说明其为“假”。从而给判断带来很大的灵活性。 说明其为“ 从而给判断带来很大的灵活性。 • 在C99中,增加了_Bool类型,并增加了头文件<stdbool.h>,在其中定义了 中 增加了 类型,并增加了头文件 , 类型 存储1, 存储0。 宏bool、true和false,用true存储 ,用false存储 。 、 和 , 存储 存储
注意: 注意:
•
中是允许的。 (1)表达式 >2>7>8在C中是允许的。 )表达式5> > > 在 中是允许的 整个关系表达式的值为多少?? 整个关系表达式的值为多少?? (2)关系表达式的值是整型数 或1,可以看成是一种整型表 )关系表达式的值是整型数0或 , 达式。 达式。 若有: 如,若有: int i=1, j=7,a; a=i+(j%4!=0); 则a的值为?? 的值为?? 的值为 值参与运算: (3)字符在关系表达式中出现按照其 )字符在关系表达式中出现按照其ASCII值参与运算: 值参与运算 的值分别为?? 如:‘a’>’A’ ‘b’==‘B’-32的值分别为?? 的值分别为 不相等”的判别, (4)避免对两个实数表达式作“相等”或“不相等”的判别, )避免对两个实数表达式作“相等” 考虑用其差绝对值之差小于一个很小的值的形式: 考虑用其差绝对值之差小于一个很小的值的形式: 如: fabs (1.0/3.0* 3.0-1.0)<1e-5 < 在区间[ ] 使用a< (5)表示 在区间[a,b]中,使用 <=x && x<=b )表示x在区间 < 例如: 例如: -10<=x && x<=10 < < 若使用: 若使用:-10≤x≤10。 。 若x=10,结果为?? ,结果为?? 若x=100,结果为?? ,结果为?? 若x=-100,结果为?? ,结果为??
c语言 条件结构

c语言条件结构条件结构是编程中非常重要的一种结构,它能根据不同的条件选择不同的执行路径,提高程序的灵活性和可扩展性。
在C语言中,条件结构主要有if语句、switch语句和三元运算符等。
我们来看一下if语句。
if语句的基本语法是:如果某个条件成立,就执行一段代码,否则执行另一段代码。
具体的语法格式如下:```if (条件) {// 条件成立时执行的代码} else {// 条件不成立时执行的代码}```在if语句中,条件可以是一个表达式,也可以是一个变量。
如果条件成立,就会执行if语句块中的代码;如果条件不成立,就会执行else语句块中的代码。
通过if语句,我们可以根据不同的情况执行不同的代码逻辑,实现程序的多样性。
接下来,我们来介绍switch语句。
switch语句是一种根据不同的情况执行不同代码的结构。
它的基本语法如下:```switch (表达式) {case 值1:// 当表达式的值等于值1时执行的代码break;case 值2:// 当表达式的值等于值2时执行的代码break;// 可以有多个casedefault:// 当表达式的值与之前的所有值都不相等时执行的代码break;}```在switch语句中,表达式的值会与每个case后面的值进行比较,如果相等,则执行对应的代码块;如果不相等,则继续与下一个case进行比较,直到找到匹配的值或者执行default中的代码。
通过switch语句,我们可以根据不同的值执行不同的代码逻辑,提高程序的可读性和可维护性。
除了if语句和switch语句,C语言还提供了三元运算符,用于在一行代码中根据条件选择不同的返回值。
三元运算符的基本语法如下:```表达式1 ? 表达式2 : 表达式3```如果表达式1的值为真,则返回表达式2的值;如果表达式1的值为假,则返回表达式3的值。
通过三元运算符,我们可以简洁地实现条件选择,提高代码的简洁性和可读性。
总结一下,条件结构是编程中非常重要的一种结构,它能根据不同的条件选择不同的执行路径。
第3章 基本的程序流程控制结构

计算机程序设计基础(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章

3.3.3 if语句的嵌套
注意: 1.else子句不能作为语句单独使用,它必须与if配对使用。 2.为使程序结构清晰、层次分明,常常采用程序行缩进的书 写格式,if 和其对应的else写在一列上。但,书写格式不能 代替逻辑结构。 3.if 和 else 的配对关系。一个 else 总是与其上面距它最近 的,并且没有其它 else 与其配对的 if 相配对。
3.2 关系运算和逻辑运算
3.2.1 关系运算
运算符 含义 优先级 < 小于 <= 小于等于 6 > 大于 >= == != 大于等于 等于 不等于 7
3.2.2 逻辑运算
运算符 含义 优先级 ! 逻辑非 2 && 逻辑与 11 || 逻辑或 12
关系表达式
关系表达式是使用关系运算符将两个表达式(算术表达式,关系表达式, 逻辑表达式,赋值表达式等)连接起来的式子。 关系表达式的值:关系表达式成立,即为“真”,C语言中用1表示; 关系表达式不成立,即为“假”,C语言中用0表示。 对1.0/3.0*3.0==1.0,计算机判 为假改写为:fabs(1.0/3.0*3.0字符比较按ASCII码进比较 1.0)<1e-5; 对浮点数判断是否相等时,由于计算机存储的误差,会出现错误的结果。 应避免对两个实数表达式作“相等”或“不相等”的判别。 例:表达式5>2>7>8在数学上是不允许的。在C语言中是允许的,按自左而 右求解。5>2值为1;1>7值为0;0>8值为0。表达式的值为0。
例:a&&b&&c :a为真才判别b,a和b同时为真才判别c a||b||c:只要a为真,就不再判断b和c 例:(m=a>b)&&(n=c>d) 当a=1,b=2,c=3,d=4时,m=0,n维持原值
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
表达 式
真 语句
7
如何使用if条件结构6-1
回顾:如果令狐冲的Java考试成绩大于90分,师父就奖 励他《独孤九剑》剑谱
import java.util.Scanner;
public class Hello2 {
使用if条件结构该如何实现 public static void main(String[ ] args) { Scanner input = new Scanner(System.in); System.out.print("输入令狐冲的Java成绩: "); int score = input.nextInt(); if ( score > 90 ) { //令狐冲的Java成绩 //判断是否大于90分
int score = 70; //考试成绩 大于等于90分 if ( score >= 90 ) { System.out.println("优秀"); 大于等于80分,小于90分 } else if (score >= 80 ) { System.out.println("良好"); } else if (score >= 60 ) { 大于等于60分,小于80分 System.out.println("中等"); } else { 小于60分 System.out.println("差"); }
}
22
……
演示示例8:完整代码
比较switch和多重if结构
相同点
都可以实现多分支结构
不同点
switch
只能处理等值的条件判断,且条件是整型变量或字符 变量的等值判断
多重if
处理在else部分还包含其它if结构,特别适合某个变 量处于某个区间时的情况
23
小结2
输入赵本山的考试成绩,显示所获奖励
成绩==100分,爸爸给他买辆车 成绩>=90分,妈妈给他买MP4 90分>成绩>=60分,妈妈给他买本参考书 成绩<60分,什么都不买
教员讲解上机目标
28
阶段1
实现思路及关键代码:
完成信息录入:使用Scanner获取用户输入,存储在变量中 AddCust1.java
Scanner input = new Scanner(System.in); System.out.print("请输入会员号(<4位整数>):"); int custNo = input.nextInt();
if和if-else条件结构执行的顺序是什么?
if:如果条件表达式成立,执行语句 if-else:如果条件表达式成立,执行语句1,如果不成立,执行语 句2
14
小结1
1、 小布什买了一筐鸡蛋,如果坏蛋少于5个, 他就吃掉,否则他就去退货
2、 要求用户输入两个数a、b,如果a能被b整 除或a加b大于1000,则输出a,否则输出b
升级功能:判断会员号是否合法
17
演示示例5:使用多重if结构
什么是switch结构
switch结构
switch (表达式) { case 常量 1: 语句; break; case 常量 2: 语句; break; default: 语句; 计算表达式的值
如果等于常量1
如果等于常量2
如果没有找到匹配的值
}
18
如何使用switch结构
4
演示示例1:用boolean变量描述信息
什么是关系运算符
常用的关系运算符有哪些:
>, < ==,!= >=,<=
大象的寿命 < 乌龟的寿命 张三的成绩 > 李四的成绩 令狐冲每次考试成绩 >= 90分 篮球的大小 == 地球的大小 真 假 真 假
由此看出
关系运算符的作用:用来做比较运算 比较后结果:boolean类型
使用switch结构解决问题6
int mingCi = 1; switch (mingCi){ 第一名的情况下 case 1: System.out.println("出任武林盟主"); break; 第二名的情况下 case 2: System.out.println("出任武当掌门"); break; 第三名的情况下 case 3: System.out.println("出任峨嵋掌门"); break; default: 其他情况下 System.out.println("被逐出师门"); }
} else { System.out.println("师父说:不孝徒,上思过崖闭关思过去吧");
}
} }
13
演示示例4:使用if-else结构
小结1
说出已学过的数据类型有哪些?
int、double、char、boolean、String
举例说明已学过的运算符有哪些?
赋值运算符、算术运算符、条件运算符、逻辑运算符
条件1 && 条件2 条件1 || 条件2 ! 条件
说明
仅仅两个条件同时为真,结果为真 只要两个条件有一个为真,结果为真 条件为真时,结果为假 条件为假时,结果为真
9
如何使用if条件结构6-3
问题3的条件如何编写
score1 > 90 && score2 > 80 || score1 == 100 && score2 > 70 public class Hello3 {
张三为他的手机设定了自动拨号
按1:拨爸爸的号 按2:拨妈妈的号 按3:拨爷爷的号 按4:拨奶奶的号
编程实现此业务
24
总结
什么数据类型可以描述真和假? 描述几种分支结构的语法和执行过程? 什么情况下会使用多重if条件结构? 多重if条件结构和switch结构的区别和适用场合 是什么?
25
上机作业
升级“我行我素shopping”购物管理系统,完成以下功能: 录入会员信息 模拟幸运抽奖 菜单切换 计算会员折扣
教员讲解上机目标
26
训练技能点
会使用关系运算符和逻辑运算符 会从控制台获取键盘输入的数据 会使用if-else和多重if条件结构 会使用switch结构
27
阶段1
训练要点:
获取键盘输入 条件运算符 逻辑运算符
需求说明:
录入会员信息(会员号、会员生日、会员积分)并显示录入信息 升级功能:判断录入是否合法(会员号必为4位整数),录入合 法,显示录入的信息;不合法,显示“录入失败”
public class HelloAccp4 { public static void main(String[ ] args) { int score = 89; if ( score > 90 ) { //令狐冲的语文成绩
System.out.println("师父说:不错,给你《独孤九剑》剑谱");
运算符的优先级: public static void main(String[ ] args) {
最高的优先级:小括号,即( ) int score1 = 100; //令狐冲的语文成绩 最低的优先级:赋值运算符,即= int score2 = 72; //令狐冲的历史成绩 优先级顺序:!>算术运算符>比较运算符>&&>||
System.out.println("出任武当掌门");
case 2: System.out.println("出任峨嵋掌门"); default: System.out.println("被逐出师门");
}
21
常见错误3-3
String day = "星期一"; switch (day){ case "星期一": 代码错误 System.out.println("星期一:青菜 "); break; case "星期二": System.out.println("星期二:鱼 "); break; …… default: switch后面小括号中表达式的 值必须是整型或字符型
if ( (score1 > 90 && score2 >80)
( )控制优先级 多使用小括号 System.out.println(" 师父说:不错,给你《独孤九剑》剑谱");
} } } 10
|| (score1 == 100 && score2 > 70) ) {
如何使用if条件结构6-4
4 、如果令狐冲考试成绩大于 90 分,师父就奖励他 《独孤九剑》,否则师父就罚他上思过崖闭关思过
System.out.println("师父说:不错,给你《独孤九剑》剑谱");
}
}
8}
如何使用if条件结构6-2
3、令狐冲Java成绩大于90分,而且音乐成绩大于80分, 师父奖励他;或者Java成绩等于100分,音乐成绩大于 70分,师父也可以奖励他
运算符
&& || !
表达式 分析:怎样把多个条件连接起来? 使用逻辑运算符
第二章
Java 选择结构
本章目标
掌握boolean类型的用法 掌握关系运算符和逻辑运算符 掌握if条件结构
使用基本if条件结构 使用多重if条件结构
掌握switch结构的用法 掌握键盘输入
2
为什么需要boolean类型
用什么数据类型能表示
一件商品是真货还是假货 一个条件成立还是不成立