- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
逻辑与(&&):一般形式: a && b; 只有当a和b都为真时, 结果才为真.
逻辑或(¦): 一般形式 a¦b, a和b中任一为真,结果为真. ¦ ¦
逻辑非(!): 一般形式 !a, a为真,!a就为假; a为假,!a为真.
C语言程序设计
表3-2 逻辑运算符及其含义和优先级
逻辑运算符 ! && ||
求解
求解 表达式1
真(非0)
表达式2 求解
表达式 的值
假(0)
表达式3
C语言程序设计
优先级: 逻辑 > 条件 > 赋值
结合性:
自右至左
例: int max,a=5;b=3; max=a>b?a:b
--a==b++ ? a++ : b++ y = x>10 ? x/10 : x>0 ? x: -x;
C语言程序设计
【程序详解】 /*Example32.c 计算绝对值 */ #include <stdio.h> main() { int x , y; printf("请输入x的值:"); scanf("%d" , &x); if(x>=0) //判断条件 y=x; else y=-x; printf("y=|x|=%d\n" , y); //输出y }
C语言程序设计
编程时注意区分“==”与“=”的不同用法,“==”为关 系运算符,用来判断符号两边表达式的值是否相等;而“=”为 赋值运算符,用来将“=”右边的表达式值赋给左边的变量。
2 逻辑运算符和表达式
整除.
(x%5==0 ) && ( x%7==0) 逻辑运算符”逻辑与”
C语言程序设计
思考题:如何表示整数x既可以被5整除又可以被7
表3-1 关系运算符及其功能 运算符 > >= < <= == !=
功能
大于
大于等 于
小于
小于等 于
等于
不等于
关于优先次序:
C语言程序设计
①、前4种关系运算符(<,<=,>,>=)的优先 级别相同,后两种也相同。前4种高于后2种。
②、关系运算符的优先级低于算术运算符。
③、关系运算符的优先级高于赋值运算符。
3、多分支选择if语句
语句形式:
C语言程序设计
if (表达式1) 语句1; else if (表达式2)语句2; …… else if (表达式n)语句n; else 语句n+1;
C语言程序设计
语句执行流程:
假(0)
表达式1 真(非0) 语句1 假(0) 假(0)
表达式2
真(非0) 语句2
表达式2 语句n
a=0; b=1; c=2; d=a++&&b++&&- -c;
d=(a++)&&(b++)&&(- -c);
运算结果: d=0,a=1,b=1,c=2
(2)a || b || c
C语言程序设计
求解方法:只要a为真(非0),就不 必判断b和c;只有a 为假,才判断b;a和 b都为假,才判断c。 例: a=0; b=1; c=2; d=a++||b++||- -c; d=(a++)||(b++)||(- -c); 运算结果: d=1,a=1,b=2,c=2
#include <stdio.h> void main() {int a,b,t; scanf("%d,%d",&a,&b); if(a>b) {t=a;a=b;b=t;} printf("a=%d,b=%d\n",a,b); }
C语言程序设计
输入a,b
a>b 真 交换a、b
假
输出 结束
注意:
C语言程序设计
含义 逻辑非 逻辑与 逻辑或
优先级 高 中 低
表3-3 逻辑运算规则
A 真 真 假 假
B 真 假 假 真
A&&B 真 假 假 假
A||B 真 真 假 真
!A 假 假 真 真
C语言程序设计
(2)、逻辑量或逻辑表达式的值
非0 值:真 0值:假
整型 实型 字符型 指针类型
0 0.0 \0 NULL
C语言程序设计
⑴、if语句自动结合一个语句,当满足条件需 要执行多个语句时,应用一对大括号{ }将需 要执行的多个语句括起,形成一个复合语句。 ⑵、if语句中表达式形式很灵活,可以是常量 、变量、任何类型表达式、函数、指针等。只 要表达式的值为非零值,条件就为真,反之条 件为假。
2、双分支选择if语句
else 语句2 ;
y=2/x
输出y的值
一、 if语句的三种形式
C语言程序设计
if语句有三种形式:单分支选择if语句、 双分支选择if语句、多分支选择if语句。
1、单分支选择if语句
语句形式: if (表达式) 语句; 语句执行流程: 表达式
假(0)
真(非0) 语句
例:从键盘输入两个整数a 和b,如果a大于b则交换两 数,最后输出两个数。
C语言程序设计
例:判断下列各逻辑表达式的值
假设a=5, b=6, c=3, d=10; (1) (a>b) && (c>d); (2) (a<b) ¦ ¦ (c>d) (3) !a (4) !a && b (5) 3¦ ¦ 1 0 1 0 0 1
C语言程序设计
逻辑运算符的优先级和结合性
高 !(逻辑非) 算术运算符 关系运算符 &&和¦ ¦ 赋值运算符
表达 式2 真(非 0) 语句 1
假 (0)
表达 式3 真(非 0) 语句 3
假 (0)
语句 4
语句 2
C语言程序设计
【案例3.3】输入身高与性别,计算一个人的标准体重。程序流程如图3-4所示
开始 输入身高值h,性别sex w=0
No h>105&&h<280 Yes Yes w=(h-100)*0.9 Yes w=(h-105)*0.92
C语言程序设计
第3章C程序Biblioteka 控制结构本章讲解1. if语句和switch语句 2. while语句、do…while语句和for语句 3. break,continue语句 4.循环语句的嵌套应用
C语言程序设计
第3章内容
3.1分支结构 3.2循环结构 3.3 综合应用 3.4本章小结
C语言程序设计
输出w 输出w
sex==1 No
sex==2 No
性别选择错kgd 信息 身高值越界
结束 图3-4 案例3.3的流程图
C语言程序设计
3.1.3、 条件运算符、条件表达式
有两个符号:?、:,它与三个操作 数组成三元运算。 一般形式: <表达式1> ? <表达式2>:<表达式3>
求值规则和表达式的值:
注意
C语言程序设计
if 和 else 语 句 之 间 只 能 有 一 个 语 句 , 当
if~else之间的语句不只一句时,应用一对
{}将语句括起。
if(a>b) {a++;b++;}
else { a=0;b=10;}
C语言程序设计
(1) 在案例3.2中,初学者经常将“if(x>=0)”错 误地添加分号,写成“if(x>=0);”,这会导致程序错 误。 (2) 在if语句中,条件判断表达式必须用括号括 起来。 (3) 在C语言中非0表示“真”,0表示“假”, if的条件中如果值为非0则认为“真”。
语句执行流程: 假(0) 表达式 真(非0) 语句1
C语言程序设计
语句形式: if (表达式) 语句1;
语句2
C语言程序设计
真(非0)
表达式
真(非0) 表达式
假(0)
语句序列
语句序列1
语句序列2
(a) 语法形式1的执行流程
(b) 语法形式2的执行流程
图3-1 两种if语句的执行流程图
C语言程序设计
C语言程序设计
printf("enter x:");
scanf(" %f ",&x); if(x==10) printf("not define x.\n"); else {if (x<=1) y=x+5; else if (x<10) y=2*x; else y=3/(x-10);
}
printf("x=%.2f,y=%.2f\n",x,y); }
自右至左
自左至右
低
X=!a+2 ¦ ¦x>y+2&&a==3,已知a=3,x=5,y=4,求x的值。
C语言程序设计
实训
1、若a=5,b=4,x=0,判断下面两个表达 式的结果及x的值: (1) 0&&x=a>b (2) a>b ¦++x ¦
2、要判别某一年是否闰年。闰年的条件是符 合下面两个条件的其中一个就可以了: (1)能被4整除, 但不能被100整除; (2)能被4整除, 又能被400整除;
语句含义:
C语言程序设计
当if语句中又包含若干个if语句时,则构 成了if 语句嵌套的情形。