范文一:三种基本结构语句
VB的源程序是由语句组成的,同其它高级编程语言一样,VB的语句也可以分为可执行语句和非可执行语句。可执行语句是指在程序运行时执行了某种操作的浯句,它往往以某种方式控制程序的执行顺序。非可执行语句是指不执行某种具体操作具有说明性的语句,一般主要是定义常量、变量等说明性的语句。
我们所要进行的程序设计属于过程化、结构化、程序设计。结构化的程序设计包含三种基本结构:顺序结构、选择结构和循环结构。
顺序结构:
顺序结构就是指程序按照语句的先后顺序一条一条地执行。使用这种结构只需要将合法语句按照合理的执行顺序排列好,即可—一执行。
选择结构:
选择结构是指程序运行到某处时要根据不同的情况做出不同的选择、执行不同的操作。此时就需要对某个条件做出判断,这个条件一般是布尔型的表达式,根据该表达式的值来决定该执行相应的何种操作。
一、If语句
If语句是非常重要的选择结构语句,几乎在所有的高级编程语言中都存在着If语句,它的主要作用是:根据条件的成立与否来确定程序的流向(即执行哪一段程序代码)。
If语句使用时有如下两种格式:
(1)简单格式:这种格式在对条件进行判断后,根据所得的结果进行相应的操作。不管其条件是真是假,操作部分都必须是单个语句。具体格式如下:
If条件Then语句1 Else语句2
其中的条件一般为布尔型表达式,其值只有真或假两种情况。所谓条件成立,是指该表达式的值为真(True);而条件不成立,是指该表达式的值为假(False)。
此格式所代表的含义是:当条件成立时,执行Then后面的语句1,之后再执行整个If语习后的语句;当条件不成立时,若存在Else部分,则执行Else后的语句2,否则就直接执行整个If语句后的浯句。
当只需要判断一种情况时,其中的Else部分是可以省略的。这种格式适用于只需判断一种或两种情况,且执行相应的操作都比较简单。
(2)复杂格式:这种格式的1f语句,不管条件成立与否,所执行的操作均可以是一条语句或多条语句。具体格式如下:
If 条件Then
语句体1
[Else
语句体2]
Endif
其中的语句体1和语句体2均为一个整体,既可以是单个语句也可以是多个语句。若为多语句,则这多个语句分别写在多行内。
这种格式代表的含义是:若条件成立时,执行Then后面的语句体l中的全部语句,执行后跳出整个If语句体,执行其后的语句;若条件不成立,如果Else部分存在,则执行Else的语句体2中的全部语句,再执行整个If语句体后的语句,否则就直接执行整个If语{的语句。与简单格式一样,复杂格式中的Else部分也是可以省略的。
另外,复杂格式也可以判断出现多种情况的可能。只需在将“Else替换成“Else件Then'’就可以多进行一层判断,它的含义是:当前一个条件不成立时,再判断这里的根据条件的成立与否来执行相应的操作。在If语句中可以多次出现“Elself",且“Else”是和与它最接近的“Elself”相对应。
现在举几个例子,以帮助大家理解。
① If a>b Then MsgBox a Else MsgBox b
② If a
a =b
b=c
End lf
③ If x<60>60>
MsgBox “不及格”
Elself x<90>90>
MsgBox “及格”
Else
MsgBox “优秀”
End lf
例①是简单格式,它的含义是:比较a、b的大小,然后输出比较大的一个
例②复杂格式,它的含义是:对a、b两个数进行排序,如果a小于b,则交换它们的值,否则改变,执行这个IF语句后,a一定大于或等于b。
例③中出现了三种情况,首先判断成否小于60,如果小于60,则这个人的成绩是不及格的,于是输出“不及格”;否则,再对个条件进行判断,如果成绩小于90,则这个人的成绩是及格,否则的话就是优秀。在这里注意,这两个条件的顺序不是随意的,只有前一个条件不成立的情况下才会判断第二个条件一个条件成立,执行过相应的语句体后就会直接执行If语句后面的语句。
二、 Select Case语句
如果分支多的话还可能出现错误,用了过多的Else后你会感到很不方便,而且程序结构也不清晰。因此,需要一种能处理多分支的语,而SelectCase就是这样的语句。在SelectCase语句中,有一个用于判断的表达式,根据此表达式的不同结果,执行不同 SelectCase表达式的结果进行判断,然后再执行不同的操作。
VB的Select语句的格式是:
Select Case <表达式>
Case <表达式结果表列1>
<语句组1>
Case <表达式结果表列2>
<语句组2>
……
Case <表达式结果表列n>
<语句值n>
Case Else
<语句组n+1>
End Select
只要使用时结构合理,其中的“Case表达式结果表列”可以为任意多个。
上述格式中,表达式可以是数值表达式或字符串表达式,然后根据表达式的值与下面的第一个“表达式结果表列”去进行比较,若与其中某个值相同,则执行该表列后的相应语句体部分,执行后退出整个 Select Case结构,执行其后的语句;若第一个“表达式结果表列”中的值没有与表达式的值相等的情况,则再与第二个“表达式结果表列”进行比较,如果表达式的值与所有的“表达式结果表列”中的值都不相等,则要看Select Case结构中是否有Case Else子句,如果有此子句,则执行其后相应的语句体部分,然后退出Select Case结构,执行其后的语句,否则不执行该结构内的任何语句,整个SelectCase结构结束,再执行其后的语句。
SelectCase语句一般格式中的“表达式结果表列”可以有如下四种格式:
(1)Case表达式结果:
这种格式中,“表达式结果表列’’中只有一个数值或字符串与表达式的值进行比较。例如Case 1、Case “char”
(2)case表达式结果1[表达式结果2]…?[,表达式结果n];
这种格式在“表达式结果表列”中有多个数值或字符串供与表达式的值进行比较,这多、数值或字符串之间用逗号分隔。如果表达式的值与这多个数值或字符串中的一个相等,即可行此“表达式结果表列”后相应的语句体部分;否则,若表达式的值与这多个值均不相等,则需再与其它Case后的“表达式结果表列”进行比较。例如:Case 1,3,5,7,9。
(3)Case表达式结果1 TO表达式结果2
这种格式在“表达式结果表列”中提供了一个数值或字符串的取值范围,可以将此范围的所有取值与表达式的值进行比较。要求表达式结果l的值必须小于表达式结果2的值,这才能提供一个合法的范围。如果表达式的值与此范围内的某个值相等,则可执行此“表达式果表列”后的相应语句体部分;否则,若表达式的值与这个取值范围内的值均不相等,则需要与其后的“表达式结果表列”进行比较。例如:Case 10 TO 30。
(4)case ls关系运算符 数值或字符串:
这种格式使用了关键字“Is”,这里的“Is”表示的是表达式的值。“Is”后面只能使用种关系运算符:“=”、“<”、“>”、“<=”、“>=,’和“<>”等。可以将表达式的值与关系运算符后的数值或字符串进行关系比较,检验是否满足该关系运算符。若满足,则执行此“表达式结果表列”表后的相应语句体部分;否则,则需再与其后的“表达式结果表列”进行比较。
下面的例子说明Select Case语句
Select Case x
Case 100
Msgbox “满分”
Case 99,98,97,96,95,94,93,92,91
Msgbox “优秀”
Case 60 tO 90
Msgbox “及格”
Case ls<>
Msgbox “不及格”
End Select
在这个例子中,根据变量、的值来判断输出结果。当输入的成绩是100时,就会与第一个表达式结果表列”表中的100相等,这时就会输出“满分”:如果是99至91之间的数,就会喻出“优秀”;如果是在60至90之间,则会输出“及格”;如果小于60,则会输出“不及格”。
在使用Select Case语句时,要注意各个Case子句的“表达式结果表列”表中的值不要出现交叉或相容的的情况。
循环结构:
循环结构是指在执行程序时,根据条件的真假,来判断是否重复执行其中某段代码。要满足某个条件,就一直重复执行这段代码,直到不满足条件为止。 Selectcase属于选择结构的语句;For……Next、For Each……Next、Do……loop、while…… Wend则是循环结构的语句。
三、For……Next语句有时我们需要在程序中重复执行某段代码,这就需要用到循环浯句。其中,For…Next语可是最常用的一种循环语句。
For…Next循环属于计数型循环,程序按照该结构中指定的循环次数来执行循环体部分。 Or……Next语句的格式如下:
For循环变量=初始值 TO终值[Step步长]
[循环体]
Next循环变量
在此格式中,使用了这样几个概念:
(1)循环变量:用于统计循环次数的变量,循环的过程就是该变量是从某个值变化到另一个值的过程。该变量一般为整型变量。
(2)初始值:用于设置循环变量的初始取值。
(3)终值:用于设置循环变量的最后取值。
(4)步长:用于决定循环变量每次循环时变化的数值,即循环变量在变化时的增值。如果省步长的话,其默认值为1。步长的取值可以为正,也可以为负。若初始值小于终值,则必将步长设为正值才有可能执行循环体;若初始值大于终值,则必须将步长设为负值才有可能行循环体。
(5)循环体:需要重复执行的代码部分,可以是一个或多个语句。
(6)Next循环变量:用于结束一次For循环,根据终值和现在循环变量的值的大小关系决定是否执行下一次循环。其中的循环变量的名称必须与循环开始时的循环变量名称相同。
For…Next语句循环的执行过程是:先将循环变量取为初始值,然后检验循环变量的取值是否超出终值(若步长为正值,则检验循环变量是否大于终值;若步长为负值,则检验循环变量的取值是否小于终值)。若循环变量没有超出终值,则执行一次循环体,然后将循环变量加—上步长再赋给循环变量本身,再与终值进行比较,直到循环变量超出终值时,退出循环,执循环后的语句。
在For…Next循环中,只要步长不为0,就永远不会出现死循环。所谓死循环,就是由于编程者的失误,导致程序进入循环后再也无法跳出循环,程序将无法正常结束。因为只要步长不为0,无论始值和终值之间相差多么大,总可以经过有限次的循环,使始值超出终值,从而跳出循环。由此可见,For…Next适用于预先知道循环次数的情况。在某些情况下,可能需要在循环变量没有超出终值之前就跳出循环,这时就要用到Exit
For语句。该语句一般是作为if语句的子句出现在循环体中的,当满足某种特殊的条件时,就提前跳出循环。
从For…Next浯句的格式中可以看到:其中的循环体是可选的。若省略了循环体,即For循环的循环体内没有任何具体的语句,则其只是起到延时的作用。因为当循环了一定次数后虽不执行任何操作,但却花费了一定时间,故可作为延时工具使用。但要注意的是由于现存计算机的速度都比较快了,如果循环次数比较少的话将不会达到预期的效果,因此要适当选择循环次数。
下面举一个循环的例子来说明For…Next语句:
S=1
for i=1 to 10
s=s*i
next i
这个例子的作用是用来计算10的阶乘。在上例中,循环变量的初值为1,终值为l0,循环变量是i,步长缺省为1。因为10的阶乘比较大,这里的s要定义为长整型的。
四、For Each…Next语句 FOR……Next语句与For…Next语句有些类似,但它们有很大的区别:前者是由指定或集合中的元素来控制循环,而后者是由循环变量来控制循环过程。由此可见,For Each…语句是不需要预先知道循环次数的,指定数组或集合中的元素个数就是循环次数。该语句的使用格式为:
For Each循环变量In数组或集合
循环体
Next循环变量
这里的循环变量必须是变体型或对象型的。对于数组,循环变量必须是变体型的;对于集合,如果集合中包含对象,则循环变量应该是对象型,当然也可以是变体型。
当某一数组或集合里的所有元素进行同一操作时,就需要使用该语句了。
五、Do…Loop语句
Do…Loop循环是根据某个条件是否成立来决定是否循环。它并不限制循环的次数,只要满足条件就继续循环,直到不满足条件时跳出循环。注意要在循环中改变条件,否则的话可能会陷入死循环。
Do…Loop语句有四种形式:
形式1:
DO
循环体
Loop While条件
这种形式的执行过程是:先执行一遍循环体,然后再判断条件是否成立,若条件成立, 继续下一次循环;否则,就退出循环。
形式2:
DoWhile条件
循环体
Loop
这种形式是把“While条件”放在循环体的前面,也就是说它的执行过程是先判断条件是立,再决定是否继续循环。
形式3:
DO
循环体
Loop Until条件
这种形式和第一种形式有些类似,也是先执行循环体,然后再判断条件。与第一种形式不同,这种形式只有当条件不成立才会继续循环,否则就退出循环。
形式4:
DO Until条件
循环体
Loop
这种形式和第二种形式有些类似,先判断条件,再决定是否继续循环。与之不同的是,这种形式也是当条件不成立才会继续循环。
由上面四种形式的格式可以看出:
第一种和第三种形式是先执行循环体,然后再判断条件,条件成立与否,至少执行一次循环体;第二种和第四种形式,则是先判断条件,如果条件当,循环体可能一次也没有执行。且“While”和“Until”正好相反,前者是条件成立时入循环,而后者则是条件不成立时才进入循环。使用时可根据需要选择最适当的形式。
在前面For…Next语句中介绍的Exit语句也适用于DO…Loop语句,只是把“Exit For”改成“Exit Do”即可,它们的作用是一样的,都是用来提前跳出循环的。
六、GOT0语句和注释语句
使用GoTo语句可以改变程序的执行顺序,从当前位置转到指定的位置。其格式如下:
GoTo行标号
该语句使程序转到行标号指定的那一行执行相应的代码。其中行标号是由字母或数字组成,在语句的最前面,且后面要加一个冒号。
使用GoTo语句要注意以下两点:
(1)GoTo语句和与其相对应的行标号必须在同一过程内,不能用该语句从一个过程跳到另一个过程中去。
(2)由于GoTo浯句破坏了程序的结构化,可能会导致程序的混乱的,因此最好少用甚至不用该语句。
注释语句是对于程序的注解和说明,以便于自己和他人阅读程序代码。它只起到帮助阅读的作用,而不执行其它任何操作。使用格式为:
Rem注释内容
或
‘注释内容
注释语句只出现在源程序中,不会被编译成二进制代码。我们在编程时要注意适当的添加注释,以便于以后的阅读和修改。为程序代码添加合理的注释,是一种良好的编程习惯。
七、求素数实例
下面我们来看一个求100至200之间所有素数的例子。具体步骤如下:
步骤1:
新建一个工程。
步骤2:
为窗体添加一个命令按钮控件,并将其“Caption”属性改为“求素数”。
步骤3:
为程序编写如下代码:
Private Sub Command1_Click()
Dim i As Integer, Jd As Integer '定义循环变量
Dim x As Integer
Dim s As Integer '用来保存素数的个数
s = 0
For i = 100 To 200
x = Sqr(i)
For j = 2 To x
'若某数能被2至它的平方根之间的数整除,则提前退出循环
If i Mod j = 0 Then Exit For
Next j
If j > x Then '判断是否提前退出了内层循环
If s Mod 10 = 0 Then Print '输出10个数后,就换行
Print i;
s = s + 1
End If
Next i
Print "100到200之内共有" & s & "个素数"
End Sub
至此,程序设计完毕,保存工程及窗体。
在这个程序中,主要使用循环嵌套来求素数。所谓循环嵌套是指一个循环当中包含着另一个循环。外层循环是从100到200,内层循环则是相外层循环变量i能否被2至它的平方根之间的数整除来判断i是否是素数,若i能被这个范围的某数整除,则i一定不是素数,且提前退出内层循环;若内层循环没有提前退出,就说明当的i是素数。内层循环之后的判断语句就是用来判断是否提前退出了内层循环,如果没有(即满条件d>X),则在窗体上输出这个数,并累计素数的个数。
最后,再输出素数的总个数。程序中的Print是个输出语句,它是把其后的内容输出到窗体上。其使用格式如下:
Print[输出内容][;]
其中,输出内容是可选的,如果省略的话,表示换行。分号(;)表示下次使用Print输出—内容时接在本次输出之后,若省略的话,下次输出时则另起一行。
范文二:C语言三种循环结构语句辨析
JournaofAnshanNorma Unversty 201 104 ,1 3( 2):45 ,47 llii- 2012-07-13################2012-07-13#####2#0#1#2-07-13########
C 语言三种循环结构语句辨析
,万延芝高迎辉
( ,114020)鞍山技师学院辽宁 鞍山
: , C : While、Do-While For摘 要几乎所有的应用程序都有循环结构语言的循环结构有三种语句格式即 和 , , C 、:语句本文从语句格式流程图和三种结构的应用领域进行比较辨析得出结论语言用于表述循环的三种
,, ,,,For 语句中语句书写灵活功能较强并以一个典型的程序为例运用三种循环结构进行了比较分析 : C ; ; ; 关键词语言循环结构流程图语句格式
: TP311: A: 1008-2441( 2011) 02-0045-03中图分类号文献标识码文章篇号
C ,、、语言是计算机专业必修的基础科目它以功能强应用面广能对硬件直接进行操作等优点赢得, Niklaus Wirth : + = 人们的青睐瑞士计算机科学家 在他的惊世之作中提出了一个公式算法 数据结构 程
,1,, ,: , 、 序算法是编写程序的核心和灵魂算法有两大要素操作和控制结构算法中控制结构有顺序结构选
,2,, C ,择结构和循环结构三种基本结构语言中循环结构是三种控制结构中的难点和重点问题广泛 应用
, C ,While、Do-While For 在几乎所有应用程序中语言的循环结构有三种语句形式可以实现分别是 和 语
,, ,句同一种算法可以用三种语句的任意一种来表述在实践应用中程序设计人员一般只选择一 种语句
,,,来实现程序中的循环结构算法也就是说只学习和掌握一种循环语句就可以满足日后编程的需 要这就要
C ,,,求在 语言教学中通过对三种循环语句对比讲解使学生准确掌握每一种语句的特点深 入理解每种结
、,, 构的语句格式要求流程图执行过程等将同一典型应用程序分别用三种循环语句完成才能使学生选
,3,,, , C 择其中一种最能驾驭和最适合自己习惯的循环语句做为今后编程的应用方法此外学好 语言中的,,,循环结构对后续面向对象程序的学习意义重大循环结构的思想可以直接应用到其 它程序设计语言中
1 C 语言提供三种循环语句来实现有关循环结构的算法
WheDo-Whe ,; ,For il、il语句结构简单对于初学者来说易于理解和掌握在某些情况下用 语句表示循
,,, :环显得紧凑而清晰适合有一定计算机语言基础的学生下面对三种循环控制结构语法格式进行辨析
1 ,三种循环结构语句控制结构如图 所示
图 1 三种循环语句结构
, 4 : ( 1 ) 1 图 分别用流程图表示三种循环控制结构的语法格式循环结构包含 个要素初始化表达
2012-07-13################2012-07-13#####2#0#1#2-07-13########
: ,; ( 2 ) : 式在循环结构前设置变量的初始值为后续循环有意义的执行做准备条件表达式判断循环终止
; ( 3) : ,还是继续执行的决定条件循环体语句条件满足时需要计算机重复完成的一系列的操作语句序 ; ( 4) ,,,, 1 列修正表达式是修改循环变量值使循环在不满足条件的情况下终止不进入死循环图 的三 种
: ,4 ,4 ,格式对比可以看出无论是哪种循环结构语句都由以上 个要素组成个要素的功能如上所述只 是各
,要素所在的位置不同
, ,准确地掌握一种循环语句格式就可以举一反三地学习其它语句格式三种语句格式对比不难得出 : For ,,For 结论用 结构表示循环显得紧凑而清晰尤其是它能利用 语句中的表达式自动地使循环变量
,While “”,,For 值发生改变不像 结构那样要在循环体中设置修正操作实际上语句中的第三个表达式 并
,,For ,, For 不仅限于修正循环变量而可以是任何操作即 结构可以无循环体或者说循环体是一个空语句将
,4,,2 While ,结构加以变形可以得到图 的 语句结构
图 2 For、While 语句结构
N-S 2 三种循环结构的 流程图辨析
3 N-S ,: ( 1 ) 图 是三种循环语句的 流程图由流程图可以看出三种循环结构的执行过程先执行初始
( For ) ; ( 2) : ,( 0 ) ,化表达式注意在 循环中执行一次重复下面的过程计算条件表达式若其值为真非 就
,; ,……执行一次循环体中的语句然后再执行修正表达式再计算条件表达式判断是否为真直至条件表
( 0) ,,, While ,Do-While 达式的值为假就不再执行循环体了而执行该循环的后序语句与 结构相比结构 第
,,,Do-While ,一次执行循环体时不判断条件表达式立即执行一次循环体即 结构至少要执行一次循环 体
,5,While For ,其它与 和 语句结构相同
图 3 三种循环结构的 N-S 流程图
3 同一案例程序分别用三种循环结构实现辨析
:先看下面一个程序段
sum = 0;
for( i = 1; i , = n; i + + )
sum = sum + ; i
,6,For ( 1 + 2 + … + n) ,以上程序段是一个用 结构实现的求即 的程序段
4 ,流程图如图 所示
While ,While :将它与 结构作一个比较它相当于下面的 结构
sum = 0;
i = 1; / *For */相当于 语句中的初始化表达式 图 4 程序流程图 /while ( i , = n) / * *条件表达式
{ 2012-07-13#########2012-07-13#2#0#1#2#-#0#7#-13########
/sum = sum + i; / *For *循环体
i + + ; / */ *修正表达式
}
For Do ,W he ,Do ,W he :ilil将上述 语句与 结构作一个比较它相当于下面的 结构
sum = 0;
i = 1; / */For *相当于 语句中的初始化表达式
do
{
/sum = sum + i; / *For *循环体
+ + ; / */i *修正表达式
}
while ( i , = n) ; / * /*条件表达式
C C ,: 语言循环结构是用 语言编程的基石上述应用程序的对比得出结论三种循环结构语句格式有
,; ,While Do-While ,C 所不同但应用领域和功能基本相同通过三者比较辨析和 语句结构简单适合学习 语
,For ,C ,言的初学者语句书写更加灵活可以完成所有 语言循环结构的功能尤其适用于循环次数已 知程
, ,C 、、,序的编写除上述简单应用外语言三种循环结构都可以应用于数组指针等都可以编写出紧 凑高
,、效风格优美的程序
C ,,,,C语言既适合编写应用程序又适合编写系统程序应用领域是很宽广的可以说大多数人学习
,, ,C ,,语言的目的是应用将它做为编程工具通过比较来学习掌握 语言的精华提高学习效率
:参考文献 ,1, , C ,M,, ,2002,:谭浩强语言程序设计教程北京高等教育出版社
,2, , C ,J,, ,2009,( 20) : 154 , 155,郭变云试论 中的结构化程序设计 科学之友
,3, , Reed-solomon RAID ,J,, ,2010,( 2) : 51 , 53,奚慧兴算法在 系统中的应用鞍山师范学院学报
,4, ,, ———C ,M,, : ,2006,林东陈琳编程语言基础语言北京高等教育出版社
,5, ,,,, C ,J,, ,2010,( 12) : 222 , 223,李聪李相俭朱明明等浅谈 语言中的循环控制科技信息
,6, , C ,J,, ,2010,( 8) : 145 , 146,姜鸿语言程序设计中循环结构教学与实践的研讨 计算机光盘软件与应用
The Discrimination of Three Circular Statements from C Language
WAN Yan-zh,GAO Yng-hu iii
( Anshan Technician College,Anshan Liaoning 114020,China)
Abstract: Almost all the applications have circular structures, And the circular structuresf rom C language have three statements: WHILE,DO- WHILE and FOR, This article compares the fromats,flow charts and application fields of these statementsand draws the conclusion that any of the above statementscan express thes ame algo- rithm, At last,taking a typical program as an example,the paper compares and analyzes the application of the
three circular structures,
Key words: C language; Circular structure; Flowchart; Statement fromat
(: ) 责任编辑张冬冬 2012-07-13#########2012-07-13#2#0#1#2#-#0#7#-13########
Your requestcould not be processed becauseof a configurationerror: "Could not connect to LDAPserver."
For assistance,contact your network support team.
范文三:python的三种选择语句
本文将详细介绍 Python 语言中的三种选择语句:if 语句, if/else语句和 if/elif/else语句。对 于每种语句, 我们都提供了相应的流程图。 与此同时, 我们给出许多简单的示例程序,以帮 助读者加深理解。
一、程序的控制结构
对于 Python 程序中的执行语句,默认时是按照书写顺序依次执行的,这时我们说这样的语 句是顺序结构的。但是,仅有顺序结构还是不够的,因为有时候我们需要根据特定的情况, 有选择地执行某些语句, 这时我们就需要一种选择结构的语句。 另外, 有时候我们还可以在 给定条件下往复执行某些语句, 这时我们称这些语句是循环结构的。 有了这三种基本的结构, 我们就能够构建任意复杂的程序了。
对本文来说,我们要讨论的是三种基本程序结构中的选择结构,它们分别用 if 语句、 if/else语句和 if/elif/else语句实现。 至于其它两种控制结构, 我们会在后续的文章中陆续加以介绍。 下面我们首先介绍 if 语句。
二、 if 语句
Python 的 if 语句的功能跟其他语言的非常相似,都是用来判定给出的条件是否满足,然后 根据判断的结果(即真或假)决定是否执行给出的操作。 If 语句是一种单选结构,它选择的 是做与不做。它是由三部分组成:关键字 if 本身、测试条件真假的表达式(我们简称为条 件表达式)和表达式结果为真(即表达式的值为非零)时要执行的代码。 If 语句的语法形式 如下所示:
if 表达式 :
语句体
if
语句的流程图如下所示:
图 1if 语句的流程示意图
注意, if 语句的语句体只有当条件表达式的值为真,即非零时,才会执行;否则的话,程序 就会直接跳过这个语句体, 去执行紧跟在这个语句体之后的语句。 我们这里的语句体, 既可
以包含多条语句, 也可以只有一条语句组成, 但是语句体由多条语句组成时, 要有统一的缩 进形式,否则就会出现逻辑错误,即语法检查没错,但是结果却非预期。
现在我们用一个示例程序来演示一下 if 语句的用法。我们的程序很简单的,只要用户输入 一个整数,如果这个数字大于 6,那么就输出一行字符串;否则,直接退出程序。代码如下 所示:
#-*-coding:cp936-*-
#比较输入的整数是否大于 6
integer =raw_input('请输入一个整数:') #取得一个字符串
integer =int(integer)#将字符串转换为整数
if integer >6:
print '%d大于 6' %integer
当我们在 IDEL
中运行该程序时,结果如下所示:
图 2if 语句示例程序运行结果
我们看到,如果输入的数字不大于 6时,程序马上退出,也就是说,下列代码
print '%d大于 6' %integer
并没有执行;如果输入的数字大于 6,才会执行上面的这行代码,以打印一行文字。 三、 if/else语句
上面的 if 语句是一种单选结构,也就是说,如果条件为真(即表达式的值为非零) ,那么执 行指定的操作;否则就会跳过该操作。所以,它选择的是做与不做的问题。而 if/else语句是 一种双选结构,它选择的不是做与不做的问题,而是在两种备选行动中选择哪一个的问题。 if/else语句由五部分组成:关键字 if 、测试条件真假的表达式、表达式结果为真(即表达式 的值为非零) 时要执行的代码, 以及关键字 else 和表达式结果为假 (即表达式的值为零) 时 要执行的代码。 if/else语句的语法形式如下所示:
if 表达式 :
语句体 1
else :
语句体 2
if/else
语句的流程示意图如下所示:
图 3if/else语句的流程示意图
从 if/else语句的流程示意图中可以轻易看出,当条件为真(即表达式的值为非零)时,执行 语句体 1;当条件为假(即表达式的值为零)时,执行语句体 2—— 也就是说,条件无论真 假,它总要在两个语句体中选择一个执行,双选结构之称谓由此而来。
下面我们对上面的示例程序进行修改, 以演示 if/else语句的使用方法。 我们的程序很简单的, 只要用户输入一个整数,如果这个数字大于 6,那么就输出一行信息,指出输入的数字大于 6;否则,输出另一行字符串,指出输入的数字小于等于 6。代码如下所示:
#-*-coding:cp936-*-
#比较输入的整数是否大于 6
integer =raw_input('请输入一个整数:') #取得一个字符串
integer =int(integer)#将字符串转换为整数
if integer >6:
print '%d大于 6' %integer
else:
print '%d小于或等于 6' %integer
当我们在 IDEL 中运行该程序时,结果如下所示:
图 4if/else语句示例程序运行结果
我们看到,当输入的数字小于 3,即条件表达式为假时,执行 else 字句中的打印语句: print '%d小于或等于 6' %integer
当输入的数字小于 3,即条件表达式为假时,执行 else 字句中的打印语句:
print '%d大于 6' %integer
但是无论如何,它总得在这两个打印语句中挑一个执行,它不可能两个都跳过。
四、 if/elif/else语句
有时候,我们需要在多组动作中选择一组执行,这时就会用到多选结构,对于 Python 语言 来说就是 if/elif/else语句。该语句可以利用一系列条件表达式进行检查,并在某个表达式为 真的情况下执行相应的代码。需要注意的是,虽然 if/elif/else语句的备选动作较多,但是有 且只有一组动作被执行,该语句的语法形式如下所示:
if 表达式 1:
语句体 1
elif 表达式 2:
语句体 2
……
elif 表达式 m :
语句体 m
else :
语句体 n
注意, 最后一个 elif 子句之后的 else 子句没有进行条件判断, 它实际上处理跟前面所有条件 都不匹配的情况,所以通常将 else 语句所处理的条件称为默认条件,所以 else 字句必须放 在最后。 if/elif/else语句的示意图如下所示:
图 5if/elif/else语句的示意图
下面我们继续对上面的示例程序进行修改,以演示 if/elif/else语句的使用方法。我们还是要 用户输入一个整数,如果这个数字大于 6,那么就输出一行信息,指出输入的数字大于 6; 如果这个数字小于 6,则输出另一行字符串,指出输入的数字小于 6;否则,指出输入的数 字等于 6。具体的代码如下所示:
#-*-coding:cp936-*-
#比较输入的整数是否大于 6
integer =raw_input('请输入一个整数:') #取得一个字符串
integer =int(integer)#将字符串转换为整数
if integer >6:
print '%d大于 6' %integer
elif integer <>
print '%d小于 6' %integer
else :
print '%d等于 6' %integer
当我们在 IDEL 中运行该程序时,结果如下所示:
图 6if/elif/else语句示例程序运行结果
上面介绍了三种选择语句的基本用法, 接下来我们将介绍这些选择结构的结合方式, 以及使 用选择语句时的注意事项,包括缩进和表达式方面的注意事项。
五、选择结构的结合方式
一般说来, 结构化编程中的三种基本结构:顺序结构、 选择结构和循环结构的结合方式有两 种, 一种是堆叠方式,另一种是嵌套方式。堆叠方式比较简单,它把各种结构一个一个罗列 在一起就行了,比如我们可以把一个选择结构中的 if 语句跟顺序结构堆叠在一起,如下所 示:
图 7顺序结构和选择结构的堆叠
我们看到,因为三种基本结构都是单入口和单出口(通常用一个小圆圈表示) ,所以堆叠时 只要把一个结构的出口连接到另一个结构的入口就行了。 至于嵌套组合方式, 就是用一种结 构替换同种结构中的语句体(我们通常用一个矩形框表示) ,下图表示的是把一个选择结构 中的 if 语句嵌套到另一个 if 语句中:
图 8if 语句的嵌套
观察上图,不难发现,上面的嵌套实际上就是把一个 if 结构中的语句体(矩形框)替换为 另一个 if 结构。其他结构的嵌套与之类似,在这里不再一一列举。
现在举一个例子来说明嵌套的应用。 我们要将用户输入的数字跟一个整数进行比较, 并输出 比较结果。这本来可以用 if/elif/else语句来完成的,但是为了演示选择结构的嵌套,我们这 里用 if/else语句的嵌套来实现,代码如下所示:
#-*-coding:cp936-*-
#将输入的数字跟 6进行比较
integer =raw_input('请输入一个整数:') #取得一个字符串
integer =int(integer)#将字符串转换为整数
if integer >6:
print '%d大于 6' %integer
else:
if integer <>
print '%d小于 6' %integer
else:
print '%d等于 6' %integer
当我们在 IDEL 中运行该程序时,结果如下所示:
图 9if/else嵌套语句示例程序运行结果
六、语句体的缩进问题
需要说明的是, 嵌套时一定要注意缩进问题。 C 语言是用花括号 {}来区分语句体, 但是 Python
的语句体是用缩进形式来表示的,如果缩进不正确,会导致逻辑错误。举例来说,如果我们 让用户输入一个数字,如果数字为偶数,则打印两行信息,一行说明数字除以 2余数为零, 另一行说明判断结果。具体代码如下所示:
#-*-coding:cp936-*-
#判断输入的数字是否为偶数
integer =raw_input('请输入一个整数:') #取得一个字符串
integer =int(integer)#将字符串转换为整数
if 0==integer %2:
print '\n%d除以 2余数为零 ;' %integer
print ' 所以, %d是个偶数 ' %integer
当我们在 IDEL 中运行该程序时,结果如下所示:
图 10正确缩进的结果
如果我们改变上面程序中的 if 语句的第二条打印语句的缩进形式,比如改为:
if 0==integer %2:
print '\n%d除以 2余数为零 ;' %integer
print ' 所以, %d是个偶数 ' %integer
我们看看运行结果如何:
图 11错误的缩进将导致逻辑错误
如图所示,这里出现了明显的逻辑错误。由于 Python 通过缩进来区分语句体的界限,所以 当上例中的第二个打印语句不缩进后,已经在 if 语句的控制范围之外,所以无论 if 语句的 条件是否为真,它都会执行。
七、选择语句中的条件表达式
现在, 我们对选择语句中的条件表达式进行必要的介绍。 三种选择语句中, 条件表达式都是 必须可少的组成部分。 当条件表达式的值为零时, 表示条件为假; 当条件表达式的值为非零 时, 表示条件为真。 那么哪些表达式可以作为条件表达式呢?基本上, 最常用的是关系表达 式和逻辑表达式,如:
if a ==x and b ==y :
print ‘a =x, b =y’
除此之外,条件表达式可以是任何数值类型表达式,甚至字符型也可以:
图 12用字符作为条件表达式的情形
八、小结
本文详细介绍了 Python 中的三种选择语句。当我们初接触这些选择结构的时候,最好多画 流程图,这对于理解程序的逻辑极有帮助。 另外,上机实习也是必不可少的,本文中的示例 程序都是在 IDEL 环境中演示的, 有关 IDEL 的使用方法, 读者可以参考前面的 “ 循序渐进学 Python 之 IDLE 篇 ” 一文。
范文四:IF语句的三种形式课件
4.1 if语句的三种形式 作用:根据所指定的条件是否满足,决定从给定的两组操作选择其中之一。
1、if语句的三种格式:
1)简化形式
if(表达式) 语句块
如: if(x>y) printf(“%d”,x);
2)一般形式
if (表达式)
语句块1
else
语句块2
例如:
if (x>y)
printf(“max=%d”,x);
else
printf(“max=%d”,y);
3)嵌套形式
? 含义:一条if语句重又包含另一个if语句称为if语句的嵌套.
? 格式:
if( )
if( ) 语句块1
内嵌if else 语句块2
else
if( ) 语句块3
内嵌if else 语句块4
注:1、右缩进格式的书写 2、嵌套条件的含义
例如:
if (score>90)
printf(“very good”);
else
if(score>80)
printf(“good”);
else
if(score>60)
printf(“ok”);
else
printf(“bad”);
4)if与else语句的配对关系
a、if语句中if与else的配对关系为else总是与它上面的最近的if配对.书写
格式的缩进与否与它们之间的配对无关.
例如:
if ( )
if ( ) 语句块1
else 语句块2
这时的else配对的对象为内层的if,而不是外层的if.
b、要实行强行的配对关系可以利用{ }。
如: if ( )
{ if ( ) 语句块1 }
else 语句块2
2(使用要点
1) 语句块:
当有若干条语句时,必须用{…}括起来,当只有一条语句时,用“;”。如:
if(a>b)
{ x=1;
max=a;
}
2)if 表达式:
if语句的表达式一般情况下为逻辑表达式或关系表达式。 如:if (a= =b && x= =y) printf (“a=b,x=y”);
也可以是任意类型(包括整型、实型、字符型、指针类型) 例如:if (?a?) printf ( “%d”, ?a? );
if (?3?) printf ( “OK!” ); 注意:“非零”与“零”的用法
请区分if(x=1)与if(x= =1)的不同。
设a=3,b=5,x=4,试分析如下程序区别:
if (a= =b) x=5;
和if (a=b) x=5;
3、综合举例
例exp4_1 输入两个数,按数值将其按大小顺序输出. #include void main( ) { float a,b,t; scanf(“%f,%f”,&a,&b); if(a>b) {t=a;a=b;b=t;} printf(“%5.2f,%5.2”,a,b); } 要点:交换两个数据的方法 例exp4_2 输入三个数按大小顺序输出. #include { float a,b,c,t; if(a>b) {t=a;a=b;b=t;} if(a>c) {t=a;a=c;c=t;} if(b>c) {t=b;b=c;c=t;} printf(“%5.2f,%5.2f,%5.2f”,a,b,c); } 例exp4_3 有一函数如下,编程输出X的值。 -1 (x<0)>0)> y= 0 (x=0) 1 (x>0) #include void main() { int x,y; scanf(“%d”,&x); if (x<0) y="-1;">0)> else if (x= =0) y=0; else y=1; printf(“x=%d,y=%d\n”,x,y); } 将上面的if语句改为: if(x>=0) if(x>0) y=1; else y=0; else y=-1; 将上述if语句改为: y=-1; if(x!=0) if(x>0) y=1; else y=0; 将上述if语句改为: y=0; if(x>=0) if(x>0) y=1; else y=-1; 讨论一下以上写法,哪些是错误的, 例exp4_3:写一程序判定某一年是否为闰年。 闰年的判定:某年能被4整除但不能被100整除或者能被4整除,又能被400整除. 例exp4_4: #include main() { int year,leap; scanf(“%d”,&year); 请同学们考虑程序有无 其它简化形式 if(year%4= =0) { if (year%100= =0) { if (year%400= =0) leap=1; else leap=0;} else leap=1;} else leap=0; if(leap) printf(“%dis”,year); else printf(“%d is not ”,year); printf(“a leap year\n”);} If语句的三种形式 (1)if(表达式)语句 执行过程:判断表达式的值,若为真,执行表达后面的语句,执行结束接着执行语句后面的其它语句;若为假,直接跳过表达式后面的语句,执行语句后面的语句。 (2)if(表达式) 语句1 else 语句2 执行过程:首先计算并测试表达式的值,若条件为真则执行语句1;否则执行语句2。 (3)if(表达式1) 语句1 else if (表达式2)语句2 …… else if (表达式m)语句m else 语句n 执行过程:先判断表达式1的值,若为真,则执行语句1,跳过其它语句,若为假,则判断表达式2,依此类推 8.条件表达式 表达式1?表达式2:表达式3 执行过程:先求解表达式1,如果表达式1的结果为真(非0)则求解表达式2,并将表达式2的结果作为整个表达式的值;否则范文五:If语句的三种形式