if语句&switch语句
if语句

1 • 用if语句实现选择结构 • 选择结构的嵌套
2
3
• 练习题
§if 语句(条件选择语句)
If语句的三种形式
形式一:
格式:if (表达式) 语句 执行过程:
表达式
=0
非0
语句
main() { int x , y ; x=20 ; 没有”;” y=10 ; if (x>y) printf(“%d”,x); }
一般形式: if (条件1) if (条件2) else else if(条件3) else 语句1 语句2
内嵌if
语句3 语句4
内嵌if
if ~ else 配对原则:缺省{ }时,else总是和它上
面离它最近的未配对的if 配对。
if(……) if(……) if(……) else…... else…... else…...
非0
=0
表达式3
非0 语句1 语句2
=0
非0 语句3 语句n
格式:if (表达式1) 语句1 else if (表达式2) 语句2 else if (表达式3) 语句3 …… else if (表达式m) 语句m else 语句n 执行过程:
例:if (number>500) else if (number>300) else if (number>100) else if (number>50) else
例 考虑下面程序的输出结果
结果:-1
main() { int x=100,a=10,b=20; int v1=5,v2=0; if(a<b) if(b!=15) if(!v1) x=1; else if(v2) x=10; x= -1; pst=0.15 ; cost=0.1 ; cost=0.075 ; cost=0.05 ; cost=0 ;
if嵌套的六种形式

if嵌套的六种形式
“if嵌套的六种形式”这句话的意思是,在编程中,if语句可以嵌套在其他if语句中,形成六种不同的结构形式。
这种嵌套结构使得程序可以根据多个条件进行不同的判断和执行。
以下是if嵌套的六种形式:
1.单重if嵌套:这是最简单的嵌套形式,一个if语句内部包含另一个if语句。
2.双重if嵌套:两个if语句相互嵌套。
3.三重if嵌套:三个if语句相互嵌套。
4.多重if嵌套:多个if语句相互嵌套,形成复杂的条件判断结构。
5.if-else if-else嵌套:使用else if代替嵌套的if语句,结构更为清晰。
6.三元运算符的嵌套:使用三元运算符来简化条件判断,特别是当只有一个
条件成立时。
这六种形式代表了不同情况下使用嵌套if语句的常见方法。
总的来说,通过灵活使用这六种形式,可以根据实际需求构建出复杂的条件判断逻辑。
if语句break用法

if语句break用法什么是if语句在编程中,if语句用于根据特定条件的真假来执行不同的代码块。
if语句可以根据条件的判断结果选择性地执行或跳过一段代码。
break语句的作用在if语句中,break语句用于终止当前循环,即使循环条件未满足。
当break语句被执行时,循环立即停止,并且程序将跳出循环继续执行后续的代码。
if语句结构if语句通常由if关键字、条件表达式和代码块组成。
其基本结构如下:if condition:# 执行代码块statement在这个结构中,condition是一个布尔表达式,如果其结果为True,则执行代码块中的语句。
break语句的用法在if语句中,break语句通常与循环结合使用,用于提前终止循环。
当某个条件满足时,我们可以使用break语句来跳出循环,即使循环条件下一次迭代仍然成立。
以下是一个示例,说明了if语句和break语句的用法:i = 0while i < 10:if i == 5:breakprint(i)i += 1在上述示例中,使用while循环迭代数字0到9。
当i的值等于5时,执行了break语句,导致循环立即终止。
因此,只有0到4这五个数字被打印出来。
if语句和break语句的应用场景if语句和break语句在循环结构中经常被使用,主要用于以下几种场景:1.条件满足时提前跳出循环通过在if语句中使用break语句,可以在满足特定条件时提前终止循环,从而节省了不必要的计算和迭代。
例如,在搜索算法中,当找到目标元素时,可以使用break语句来跳出循环,因为不再需要继续搜索。
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]target = 5for num in numbers:if num == target:print("目标元素已找到")breakelse:print(num)在上述示例中,当循环遍历到数字5时,条件满足,并且通过break语句提前跳出循环,输出结果为”目标元素已找到”。
if语句的原理

if语句的原理
if语句是一种条件语句,它基于指定的条件来决定程序执行的
路径。
它的工作原理是:当给定的条件为真时,if语句中的代
码块将被执行;当条件为假时,if语句中的代码块将被忽略。
if语句通常由关键字"if"后跟一个条件表达式和一个代码块组成。
条件表达式可以是一个布尔表达式,也可以是一个返回布尔值的函数。
如果条件表达式的结果为真(即非零值或非空),则if语句中的代码块将被执行。
如果条件表达式的结果为假(即零值或空),则if语句中的代码块将被跳过。
在执行if语句时,可以使用"else"关键字来提供一个可选的代
码块,用于在条件为假时执行。
这种情况下,当条件为真时执行if代码块,当条件为假时执行else代码块。
除了"if-else"语句,还可以使用"if-elif-else"语句来处理多个条件。
在if-elif-else语句中,可以有多个elif块,它们会依次检
查条件并执行第一个满足条件的代码块。
if语句的原理是根据条件表达式的结果来选择执行路径。
它提
供了一种控制程序流程的方法,根据不同的条件执行不同的代码块。
通过合理使用if语句,可以实现程序的逻辑分支和条
件判断。
if语句

if 语句
if 语句又称为条件分支语句。
它的流程控制方式是:根据给定的条件进行判断,由判断的
结果,即真(非零)或假(零)来决定执行给出的两种操作之一。
C 语言提供了3种形式的
IF 语句:(IF 语句,if-else 语句只能用于两个分支的选择结构),(当有多个分支可供选择时,
可采用if-else-if 语句)。
1. if 语句
一般形式为:
If (表达式)语句;
执行过程:如表达式为真(非零),则执行其后的语句;否则,顺序执行if 语句后的下一条
语句。
分析下面if 语句执行过程。
If (x > y )printf (“%d ” ,x);
当x>y 时,输出X 的值,否则(即x< =y )执行该if 语句的下一条语句。
If-else-if 语句
执行过程:先判断表达式1的值,如为真,执行语句1,否则判断表达式2的值,如为真,
则执行语句2,否则继续判断表达式3,依此类推。
当出现某个表达式值为真时,则执行其
对应的语句,然后跳到整个if 语句之外继续执行程序。
如果所有的表达式均为假,则执行
语句n ,然后继续执行后续语句。
IF
↓
Y ←
→ N ↓ ↓
↓ ↓
→ → ← ←
↓
出口。
If 语 句

例题1:计算 y x 的值。 ①问题的算法流程图:
②事件过程代码设计:
Private Sub Command1_Click() Dim x As Single x = InputBox("清输入一个非负数:", "数据输入") If x >= 0 Then Print x; "的平方根="; Sqr(x) End Sub
使用单行分支结构的流程图:
②使用双分支If语句:
使用格式a:的双分支If语句:
If x<0 Then y=exp(3*x)+2*x^2 Else y=(sin(x))^2+5* x-3
使用格式b:的双分支If语句:
If x<0 Then y=exp(3*x)+2*x^2
Else y=(sin(x))^2+5* x-3
Else ……
End If
例题4:设计一个程序,接受用户输入的3个整数,然后按 从大到小顺序输出。
①算法: 算法一(采用IF语句嵌套方式)的流程图:
算法二(采用逐次判断的非IF语句嵌套方式)的流程图:
②程序代码:Private Sub CmdInput_Click()
Dim a As Integer, b As Integer, c As Integer
对象 Form
CommandButton
属性 Name BorderStyle Caption MaxButton MinButton Name Caption
属性值 FrmIf 1 If语句的使用 0 -1 CmdInput 请输入X的值
③事件过程代码设计
Private Sub CmdInput_Click()
if语句的简单经典例子

if语句的简单经典例子
if语句是编程中最基本的语句之一,它表示如果某个条件成立,就执行某个操作,否则就执行另一个操作。
下面是几个经典的if语句例子。
例子一:求两个数的最大值
这是一个if语句的经典例子。
假设我们要求两个数a和b的最大值,可以写出以下代码:
```
if a > b:
print("a is greater than b")
else:
print("b is greater than a")
```
这段代码中,首先判断a是否大于b,如果是,就输出"a is greater than b",否则就输出"b is greater than a"。
例子二:判断一个数是正数、负数还是零
例子三:判断一个年份是否是闰年
判断一个年份是否是闰年的方法是:如果这个年份能被4整除,但不能被100整除,或者能被400整除,那么就是闰年。
可以写出以下代码:
元音字母包括a、e、i、o、u五个字母,可以写出以下代码:
例子五:判断一个年龄属于哪个年龄段
假设要根据输入的年龄判断其属于哪个年龄段,可以写出以下代码:
这些例子展示了if语句的基本用法,学习if语句的时候,还需要理解逻辑运算符、条件表达式等概念。
掌握了if语句,才能写出更加复杂的程序。
c语言if的用法

C语言if的用法1. 简介在C语言中,if是一种条件语句,用于根据给定的条件来执行不同的代码块。
它允许程序根据条件的真假来选择性地执行特定的代码。
2. 基本语法if语句的基本语法如下:if (condition) {// 如果条件为真,执行这里的代码块}其中,condition是一个表达式,它用于判断是否满足某个条件。
如果condition为真,则执行花括号内的代码块;否则,跳过该代码块。
3. 单个if语句最简单的情况下,我们可以使用单个if语句来根据条件执行相应的代码。
int num = 10;if (num > 0) {printf("num是正数");}上述代码中,如果变量num大于0,则输出”num是正数”。
否则,不输出任何内容。
4. if-else语句除了使用单个if语句外,我们还可以使用if-else语句来在条件为假时执行另外一段代码。
int num = -5;if (num > 0) {printf("num是正数");} else {printf("num是负数或零");}上述代码中,如果变量num大于0,则输出”num是正数”;否则,输出”num是负数或零”。
5. if-else if-else语句在某些情况下,我们可能需要根据多个条件选择性地执行不同的代码块。
这时可以使用if-else if-else语句。
int score = 85;if (score >= 90) {printf("优秀");} else if (score >= 80) {printf("良好");} else if (score >= 60) {printf("及格");} else {printf("不及格");}上述代码中,根据变量score的值,输出相应的等级。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(1)先后用3个独立的if语句处理 输入x scanf("%d",&x); 若 x<0, 则y=-1 if(x<0) y=-1; 若 x=0, 则y=0 if(x==0) y=0; 若 x>0, 则y=1 if(x>0) y=1; 输出x和y printf("x=%d,y=%d\n",x,y);
(2)用一个嵌套的if语句处理 输入x 若x>=0 若 x>0, 则y=1 否则 y=0 否则 y=-1 输出x和y scanf("%d",&x); if (x>=0) if (x>0) y=1; else y=0; else y=-1; printf("x=%d,y=%d\n",x,y);
if语句只有两个分支可供选择,在实际问题中常常 需要用到多分支的选择。 举例:成绩等级分类,人口年龄分类,工资统计分 类,银行存款分类等等。 以上情况如果用if语句处理,分支较多,程序冗长, 可读性差。 switch语句可以方便地处理多分支选择。
switch语句的一般形式: switch(表达式) 整型及字符型数据 { case 常量1 :语句1 case 常量2 :语句2 ┇ ┇ ┇ case 常量n :语句n default : 语句n+1 }
3’、if (number > 500) cost = 0.15; else if (number > 300) cost = 0.10; else if (number > 100) cost = 0.075; else if (number > 50) cost = 0.05; else cost = 0;
1、if(a==b && x==y) printf(‚a=b,x=y‛); 2、if(x >0) printf (‚ %f‛,x); else printf (‚ %f‛ ,-x); 3、if(number > 500) cost=0.15; else if(number>300) cost=0.10; else if(number>100) cost=0.075; else if(number>50) cost=0.05; else cost=0;
switch语句的作用:根据表达式的值,使流程跳转到不同 的语句。
switch(grade) { case 'A': printf("85~100\n");
case 'B': printf("70~84\n");
case 'C': printf("60~69\n"); case 'D': printf("<60\n");
说明:1、当表达式的值与某一个case后面的常量表达式的值相等时, 执行case后面的语句。 2、每个case的常量表达式的值必须互不相同,否则会出现互相矛 盾的现象。 3、各个case和default的出现次序不影响执行结果。可以先出现 default,再出现case ‘A’,case ‘D’等,但建议default 放在最后边。 4、执行完一个case语句后,流程控制转移到下一个case继续执行。
说明:为使程序结构清晰,便于他人阅读,也便于 维护,程序应做到: 1、采用锯齿形式,内嵌语句向右缩进2列或多列。 2、同一层次的成分(如同一层的if和else)出现在 同一列上。
程序改进: void main() { int number; double discount,price,total;
if (表达式) 语句1
[ else 语句2 ]
方括号内的部分为可选的
if (表达式) 语句1 [ else 语句2 ]
语句可以为简单的语句、复合语句、另 一个if语句等
最常用的3种if语句形式: 1. if (表达式) 语句1 (没有else子句) 2. if (表达式) 语句1 else 语句2 (有else子句) 3. if(表达式1) 语句1 else if(表达式2) 语句2 else if(表达式3) 语句3 ┆ else if(表达式n) 语句n else 语句n+1 (在else部分又嵌套了多层的if语句)
if语句的嵌套
if语句的嵌套:在if语句中又包含一个或多个if语句称为一 般形式: if( ) if( ) 语句1 else 语句2 内嵌if语句 else if( ) 语句3 else 语句4
if() { if() 语句1 } else语句2
内嵌if语句 { }限定了内嵌if范围
注意:else总是与它上面最近的未配对的if配对。 思考下面程序的配对结果。 1、if() 2、if() else 语句1 if() 语句1 if()语句2 else else 语句3 if()语句2 else 语句3 else 语句4
作业
1、使用if else和switch语句实现给出一个百分制成绩,要求输 出成绩等级‘A’‘B’‘C’‘D’‘E’,其中90分以上为 ‘A’,80-89分为‘B’,70-79分为‘C’, 60-69分为‘D’,60分 以下为‘E’。 2、P106要求编写程序,实现用户输入购买的数量和单价输出 应付货款。
if(number>=500) discount=0.10; else if(number>=300) discount=0.075; else if(number>=50) discount=0.05; else discount=0; total=number*price*(1-discount); printf("Total=%10.2f\n",total); }
给出三角形的边长,求三角形的面积。 int main() {... scanf(‚%lf,%lf,%lf‛,&a,&b,&c); if(a+b>c && b+c>a && c+a>b) { s=0.5*(a+b+c); area=sqrt(s*(s-a)*(s-b)*(s-c)); printf(‚area=%6.2f\n‛,area); } else printf(‚it’s not a trilateral.\n‛); …}
void main() { int number; double discount,price,total;
//discount为折扣, //price为单价,total为总价
printf("please enter number and price:"); scanf("%d,%lf",&number,&price);
输入x 若x<0, 则y=-1 否则 若x=0, 则y=0 否则 y=1 输出x和y
scanf("%d",&x); if(x<0) else if(x==0) y=0; y=-1;
else
y=1;
printf("x=%d,y=%d\n",x,y);
思考: P120,判断程序正确与错误。
switch语句
例1:为促销,对购买货物多的顾客有优惠,大于等 于50件的优惠5%,大于等于100件的优惠7.5%,大于 等于300件的优惠10%,大于等于500件的优惠15%, 编写程序,要求用户输入购买的数量和单价,计算 应付货款。 解题思路:检查数量的范围,根据数量范围,确定 优惠折扣。 计算公式:应付货款=件数*单价*(1-优惠折扣)。
//discount为折扣,
//price为单价,total为总价
printf("please enter number and price:"); scanf("%d,%lf",&number,&price);
if(number>=500) discount=0.10; else if(number>=300) discount=0.075; else if(number>=50) discount=0.05; else discount=0; 采用锯齿形式 total=number*price*(1-discount); printf("Total=%10.2f\n",total); }
说明: (1)整个if语句可写在多行上,也可写在一行上,但都是一 个整体,属于同一个语句。 (2)‚语句1‛…‚语句n‛是if中的内嵌语句,内嵌语句也 可以是一个if语句。 (3)‚语句1‛…‚语句n‛可以是简单的语句,也可以是复 合语句,需要用{ }将几个语句括起来。 (4)else子句不能单独使用,它必须是if语句的一部分,与 if配对使用。
上课要求
课前预习 将手机调到静音 认真做笔记 及时完成作业
学习目标
了解if语句的一般形式 学会使用嵌套的if语句 学会使用switch语句
学习内容
if语句的一般形式 if语句的嵌套 switch语句
if语句的一般形式
if语句分为两种类型: 不带else子句的和带else子句的。 一般形式为:
5、case 常量表达式只起语句标号的作用,并不是在该处Байду номын сангаас行条件判
断。
6、当case后面包含一个以上的执行语句时,可以不必用{}括起来, 程序自动执行case后面的所有语句。 case 70:printf(‚your age is 70‛); printf(‚you can enter the park freely‛); 7、多个case可以共用一组执行语句。 case ‘A’: case ‘B’: case ‘C’:printf(‚>60\n‛);break; 当grade的值为‘A’、‘B’或‘C’时,都执行printf(‚>60\n‛); break;