项目4-2if条件分支语句
- 格式:ppt
- 大小:400.00 KB
- 文档页数:30
常见问题4-2 if 语句条件判断表达式中将等号书写成赋值号
对于初学者来说,经常犯类似【示例1】、【示例2】在将条件判断表达式中的等号“==”写成赋值号“=”,造成执行结果与本意完全不符。
【示例1】程序段
int
if (a=b)
printf("a 等于b\n");
else if (a<b)
printf("a 小于b\n");
else printf("a 大于b\n"); 对于这样的问题,不是语法错误,而是逻辑错误。
编译时系统不会给出语法错,也不会给出警告,所以,初学者很难发现这类逻辑错误。
编译通过后,一执行才发现结果与预想的不一样。
执行时,先判断“a=b ”是否成立,由于a=b 是赋值表达式,把b 的值赋给a ,a 的值变为2,表达式“a=b ”的值也为2,非0,所以,表达式“a=b ”成立,因此,执行了语句“printf("a 等于b\n");”,于是得到输出结果:a 等于b 。
【示例2】程序段
int
if (a=b)
printf("a 等于b\n");
else if (a<b)
printf("a 小于b\n");
else printf("a 大于b\n"); 而像【示例2】这样的逻辑问题,连输出结果都跟预想的一样,初学者更难发现其中的逻辑错误了。
切记:C 语言中的等于用“==”,而不是“=”。
介绍 if语句if语句是一种在编程中常用的条件语句,可以根据条件的真假来执行不同的代码块。
在本文中,我将介绍if语句的基本语法、用法和常见应用场景。
一、基本语法if语句的基本语法如下:```if 条件:代码块```其中,条件是一个判断表达式,如果条件为真,则执行代码块中的代码;如果条件为假,则跳过代码块。
二、用法1. 单条件判断最简单的用法是使用单个if语句来判断一个条件。
例如,我们可以判断一个数是否为正数:```num = 10if num > 0:print("这是一个正数")```2. 双条件判断有时候我们需要同时判断两个条件,可以使用if-else语句。
例如,判断一个数是正数还是负数:```num = -10if num > 0:print("这是一个正数")else:print("这是一个负数")```3. 多条件判断如果需要判断多个条件,可以使用if-elif-else语句。
elif是else if 的缩写,可以用来判断多个条件。
例如,判断一个数是正数、负数还是零:```num = 0if num > 0:print("这是一个正数")elif num < 0:print("这是一个负数")else:print("这是零")```4. 嵌套条件判断在if代码块中,我们还可以嵌套使用if语句来进行更复杂的条件判断。
例如,判断一个数是否为偶数并且大于10:```num = 12if num % 2 == 0:if num > 10:print("这是一个大于10的偶数")else:print("这是一个小于等于10的偶数")else:print("这是一个奇数")```三、常见应用场景if语句在编程中非常常见,可以用来处理各种不同的条件判断。
if 分支结构语句if 分支结构语句是编程中常用的一种控制语句,用于根据条件执行不同的代码块。
下面是10个例子,展示了不同场景下使用 if 分支结构语句的情况:1. 判断用户输入的数字是正数还是负数:```pythonnum = int(input("请输入一个数字:"))if num > 0:print("这是一个正数")elif num < 0:print("这是一个负数")else:print("这是零")```2. 根据用户的年龄判断其是否满足电影观看的年龄限制:```pythonage = int(input("请输入您的年龄:"))if age >= 18:print("您可以观看此电影")else:print("您未满足观影年龄限制")```3. 判断一个年份是否为闰年:```pythonyear = int(input("请输入一个年份:"))if (year % 4 == 0 and year % 100 != 0) or year % 400 == 0: print("这是一个闰年")else:print("这不是一个闰年")```4. 判断一个字符串是否为回文字符串:```pythonstring = input("请输入一个字符串:")if string == string[::-1]:print("这是一个回文字符串")else:print("这不是一个回文字符串")```5. 判断一个数字是否为素数:```pythonnum = int(input("请输入一个数字:"))if num > 1:for i in range(2, int(num/2)+1):if num % i == 0:print("这不是一个素数")breakelse:print("这是一个素数")else:print("这不是一个素数")```6. 根据用户输入的月份判断季节:```pythonmonth = int(input("请输入一个月份(1-12):")) if month in [3, 4, 5]:print("这是春季")elif month in [6, 7, 8]:print("这是夏季")elif month in [9, 10, 11]:print("这是秋季")elif month in [12, 1, 2]:print("这是冬季")else:print("请输入有效的月份")```7. 根据用户输入的成绩判断等级:```pythonscore = int(input("请输入一个成绩(0-100):"))if score >= 90:print("优秀")elif score >= 80:print("良好")elif score >= 70:print("中等")elif score >= 60:print("及格")else:print("不及格")```8. 根据用户输入的英文字母判断是元音字母还是辅音字母:```pythonletter = input("请输入一个英文字母:")if letter.lower() in ['a', 'e', 'i', 'o', 'u']:print("这是一个元音字母")else:print("这是一个辅音字母")```9. 判断一个年龄段是否属于儿童、青少年、成年人、老年人:```pythonage = int(input("请输入一个年龄:"))if age < 0:print("请输入有效的年龄")elif age < 14:print("儿童")elif age < 18:print("青少年")elif age < 60:print("成年人")else:print("老年人")```10. 根据用户输入的月份和日期判断星座:```pythonmonth = int(input("请输入出生月份(1-12):"))day = int(input("请输入出生日期(1-31):"))if (month == 1 and day >= 20) or (month == 2 and day <= 18):print("水瓶座")elif (month == 2 and day >= 19) or (month == 3 and day <= 20):print("双鱼座")elif (month == 3 and day >= 21) or (month == 4 and day <= 19):print("白羊座")elif (month == 4 and day >= 20) or (month == 5 and day <= 20):print("金牛座")elif (month == 5 and day >= 21) or (month == 6 and day <= 21):print("双子座")elif (month == 6 and day >= 22) or (month == 7 and day <= 22):print("巨蟹座")elif (month == 7 and day >= 23) or (month == 8 and day <= 22):print("狮子座")elif (month == 8 and day >= 23) or (month == 9 and day <= 22):print("处女座")elif (month == 9 and day >= 23) or (month == 10 and day <= 23):print("天秤座")elif (month == 10 and day >= 24) or (month == 11 and day <= 22):print("天蝎座")elif (month == 11 and day >= 23) or (month == 12 and day <= 21):print("射手座")elif (month == 12 and day >= 22) or (month == 1 and day <= 19):print("摩羯座")else:print("请输入有效的月份和日期")```这些例子展示了 if 分支结构语句在不同场景下的应用,可以根据具体需求使用 if 分支结构语句来实现不同的逻辑判断和条件控制。
汇编语言(四)分支结构程序设计分支结构是计算机程序设计中常用的一种控制结构,它根据一些条件的真假决定程序的执行路径。
在汇编语言中,我们可以使用条件分支指令来实现分支结构的程序设计。
常用的条件分支指令有以下几种:1.无条件跳转指令(JMP):该指令用于无条件跳转到指定的地址。
例如,JMPLABEL指令会跳转到LABEL标记的位置。
2.条件跳转指令:根据一些条件的真假决定是否跳转到指定的地址。
常用的条件跳转指令有以下几种:-跳转指令(JZ、JNZ):根据零标志位(ZF)的状态来判断是否跳转。
如果ZF为1,则跳转;如果ZF为0,则不跳转。
-跳转指令(JC、JNC):根据进位标志位(CF)的状态来判断是否跳转。
如果CF为1,则跳转;如果CF为0,则不跳转。
-跳转指令(JS、JNS):根据符号标志位(SF)的状态来判断是否跳转。
如果SF为1,则跳转;如果SF为0,则不跳转。
-跳转指令(JO、JNO):根据溢出标志位(OF)的状态来判断是否跳转。
如果OF为1,则跳转;如果OF为0,则不跳转。
-跳转指令(JP、JNP):根据奇偶标志位(PF)的状态来判断是否跳转。
如果PF为1,则跳转;如果PF为0,则不跳转。
-跳转指令(JA、JNA):根据无符号数比较结果来判断是否跳转。
如果无符号数比较结果为大于,则跳转;如果无符号数比较结果为小于或等于,则不跳转。
-跳转指令(JB、JNB):根据无符号数比较结果来判断是否跳转。
如果无符号数比较结果为小于,则跳转;如果无符号数比较结果为大于或等于,则不跳转。
-跳转指令(JAE、JNAE):根据无符号数比较结果来判断是否跳转。
如果无符号数比较结果为大于或等于,则跳转;如果无符号数比较结果为小于,则不跳转。
-跳转指令(JBE、JNBE):根据无符号数比较结果来判断是否跳转。
如果无符号数比较结果为小于或等于,则跳转;如果无符号数比较结果为大于,则不跳转。
-跳转指令(JE、JNE):根据有符号数比较结果来判断是否跳转。
双分支if语句
双分支if语句是一种条件分支语句,用于根据条件的真假决定
程序的执行路径。
它的语法结构如下:
if (条件) {
// 条件为真时执行的代码
} else {
// 条件为假时执行的代码
}
其中,if关键字后面的条件可以是任何返回布尔类型的表达式。
如果该表达式的值为true,则执行if语句块中的代码;否则,执
行else语句块中的代码。
举个例子,假设我们想根据用户的年龄输出不同的问候语,可
以使用双分支if语句:
int age = 25;
if (age >= 18) {
System.out.println("成年人,好好工作!");
} else {
System.out.println("未成年人,请好好学习!");
}
运行结果为:
成年人,好好工作!
在以上示例中,如果age的值大于等于18,则执行if语句块中的代码;否则,执行else语句块中的代码。
在本例中,age的值为25,因此输出的是“成年人,好好工作!”。