第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语言程序设计》教案

4.布尔类型Boolean类型
第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节变量与常量
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语言的运算符

① 前缀形式:++i、--i,它的功能是在使用i之前, i 值先加 (减)1(即先执行i+1或i-1,然后再使用i值)。 ② 后缀形式:i++、i--,它的功能是在使用i 之后, i 值再加 (减)1(即先使用i值,然后再执行i+1或i-1)。
普通高等教育“十一五 ” 国家级规划教材
3.2. 算术运算符与算术表达式
3、C语言的运算符和表达式
3.1.2 运算符的优先级和结合性
例如:
普通高等教育“十一五 ” 国家级规划教材
3*5/3 :表达式中出现了二个运算符即*和/。按 照优先级的次序,5的两侧“*”和“/”优先级相同, 则按结合性处理。“*”和“/”运算符的结合性为从 左到右,则先乘后除,表达式的值为5。
d=a+b-c :表达式中出现了三个运算符即=(赋 值)、+、-。按照优先级的次序,加和减的运算优先 级相同,而赋值运算符优先级较低。根据加和减的结 合性是从左到右,因此先计算加,再计算减,最后进 行赋值。
3 C语言的运算符和表达式
普通高等教育“十一五 ” 国家级规划教材
3.1.1运算符的优先级和结合性
注意所有的单目运算符、赋值运算符
和条件运算符都是从右向左结合的,要 予以特别关注,其余均为从左向右结合 的,与习惯一致。
普通高等教育“十一五 ” 国家级规划教材
学习 C语言的运算符,不仅要掌握各种 运算符的功能,以及它们各自可连接的运算 对象个数,而且还要了解各种运算符彼此之
普通高等教育“十一五 ” 国家级规划教材
第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.表达式 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:值强制转换成整数。
本章主要内容
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:值强制转换成整数。
- 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类型
用什么数据类型能表示
一件商品是真货还是假货 一个条件成立还是不成立