第7章 一、选择控制结构
% Q) i u4 X- r4 R (一)单行结构条件语句+ ^6 o+ |' W6 B
单行条件语句比较简单,其格式如下:If条件Then then部分[Else else部分]
9 X' k4 G, M- g( O6 P8 e# @$ C+ @! g 该语句的功能是:如果“条件”为True,则执行“then部分”,否则执行“else部分”。 h& z ?( R6 ?% `& a9 m/ k, X7 V4 j
(二)块结构条件语句
7 [# V- t5 y0 {! [ 块结构条件语句与C、Ada等语言中的条件语句类似,一般格式如下:
8 b9 N* h( r5 ?( `6 D& X8 k/ v If条件1 Then+ K2 V1 I* z) J0 E5 a' }
语句块1
- I' j: I7 c" Q [ElseIf条件2Then1 ~- |7 Y1 O& V. x. E
语句块2]$ a0 f5 t5 H9 Z7 H
[ElseIf条件3Then
% w7 {* m8 y# @- v% y 语句块3
" E% _' t* T( X1 D4 Q ]……
3 \1 i& U1 b0 b* g [Else
3 j5 h- K2 a7 m 语句块n]
1 a0 C7 [- |7 b4 y, L/ C3 [ End If
- {5 r* e, y! ], h% [ 块结构条件语句的功能是:如果“条件1”为True,则执行“语句块1”;否则如果“条件2”为True,则执行“语句块2”……否则执行“语句块n”,若无Else及其后面语句,则执行End If后面的语句。
( _. @$ a2 W& L8 `5 s 块形式的条件语句简化为:
. v5 k# i3 |/ n, i" e6 v If条件Then9 e9 z6 a7 |$ O
语句块& M' i7 P1 I2 O$ m
End If% N) A- G; E) h+ g
(三)IIf函数$ g+ I6 e1 X+ r1 x t" l
IIf函数可用来执行简单的条件判断操作,它是“If…Then…Else”结构的简写版本,IIf是“Immediate If”的缩略。# h6 l, y4 A9 o4 n1 h! _0 V4 r# B Q
IIf函数的格式如下:5 @4 h$ \9 y; H- G
result=IIf(条件,True部分,False部分)
+ w7 t& {4 `. }& W2 B “result”是函数的返回值,“条件”是一个逻辑表达式。当“条件”为真时,IIf函数返回“True部分”,而当“条件”为假时返回“False部分”。“True部分”、或“False部分”可以是表达式、变量或其他函数。注意,IIf函数中的3个参数都不能省略,而且要求“True部分”、“False部分”及结果变量的类型一致。, e- S o+ U3 b( k J
二、多分支控制结构
2 \# [$ z7 Q" Z9 O' J0 r, t5 V 情况语句的一般格式为:* P! G; m* Y( T- z2 I
Select Case 测试表达式, f) } u) a" @. S/ ?8 N
Case 表达式表列1
1 {6 {9 W' S! d0 w$ u 语句块1- s9 U8 u8 k7 g( s
[Case表达式表列2' f, ?0 ?+ F) | {
[语句块2]]
t5 X0 i: i7 m/ N! ? k ……3 k0 @- K; C( o3 \3 A
[Case Else* l1 c8 u: H( l& D" j! m
[语句块n]]5 f! K2 O- u% Q: ^& [
End Select
' ^6 ?5 H% N9 I. A& Q 情况语句以Select Case开头,以End Select结束。其功能是,根据“测试表达式”的值,一个语句块中选择符合条件的一个语句块执行。+ O& o6 e, d/ [" G
三、For循环控制结构
3 a! r: r( G! F/ e For循环也称For-Next循环或计数循环。其一般格式如下:For循环变量=初值To终值[Step步长]) a2 n7 E/ `; b: j
[循环体1]
$ u# [! F+ b* ^ Z6 J [Exit For]
% p5 R; m7 u1 E [循环体2]
8 R0 B9 U: _! O9 P ]: G Next[循环变量][,循环变量]……& ^& i5 i. _- h4 j# w) j1 s
其格式如下:While
; }) l: w5 \0 _: s# Q' L [+ } 四、当循环控制结构& ` X; S; n2 I3 E% F, |
其格式如下条件:: D0 Y @ a2 h' D- H
Wend
6 S- [# G: v- o% Z/ L1 W# l [语句块]
4 l7 M1 `, s" w% G( h6 m, H* o Wend, g: o) `( ~6 D
在上述格式中,“条件”为一布尔表达式。当循环语句的功能是:当给定的“条件”为True时,执行循环中的“语句块”(即循环体)。/ I9 g% m; Q/ Q" C. A8 v9 J
五、Do循环控制结构
& U( i1 H& y* A! L+ k5 e: t Do循环不仅可以不按照限定的次数执行循环体内的语句块,而且可以根据循环条件是True或False决定是否结束循环。Do循环的格式如下:* x. ~9 B* v2 N7 u8 O1 w6 n! q
(1)Do
8 c7 P, W" m y5 q [语句块1]- S' ?# l4 g) N
[Exit Do]
, K7 }0 }" E3 P: S, i' o Loop[While|Until循环条件]
! l1 Y+ `+ D( T" S5 ]5 f! ^. | (2)Do[While|Until循环条件]' [. t3 i0 Z! h# x s
[语句块2]) e- V3 j/ N% k# ]$ ^: ^/ Y
[Exit Do]* n- m3 ?; P7 e" O6 o! t9 }7 e
Loop1 c9 M( v& W) {/ n' }* P4 J( K! I
Do循环语句的功能是:当指定的“循环条件”为True或直到指定的“循环条件”变为False之前重复执行一组语句(即循环体)。
- @- N( b% g/ i' p$ s$ a( S! K 六、多重循环( v- W N. e5 }7 s5 A
Examda提示: 通常把循环体内不含有循环语句的循环叫做单层循环,而把循环体内含有循环语句的循环称为多重循环。例如在循环体内含有一个循环语句的循环称为二重循环。多重循环又称多层循环或嵌套循环。8 L3 r1 p0 q# B# q4 c+ |
七、GoTo型控制
$ j: ]9 v6 r9 P6 d (一)GoTo语句6 e* ?# d. ~; S& e
GoTo语句可以改变程序执行的顺序,跳过程序的某一部分去执行另一部分,或者返回已经执行过的某语句使之重复执行。因此,用GoTo语句可以构成循环。% U2 U2 X& }' l- V
GoTo语句的一般格式为:: ], b# f/ b9 s# L6 Y9 i+ v
GoTo {标号|行号}
& O9 O+ h1 y9 v1 {8 m+ @ “标号”是一个以冒号结尾的标识符;“行号”是一个整型数,它不以冒号结尾。4 T% f6 O }( M% u
(二)On…GoTo语句3 k* ^" J% z& f( b- y
On…GoTo语句类似于情况语句,用来实现多分支选择控制,它可以根据不同的条件从多种处理方案中选择一种。其格式为:3 @9 k0 N4 [! ^7 V5 n0 }* {4 D R
On数值表达式GoTo行号表列|标号表列, d. }' k( X: G/ \: D+ ]7 z
On-GoTo语句的功能是:根据“数值表达式”的值,把控制转移到几个指定的语句行中的一个语句行。“行号表列”或“标号表列”可以是程序中存在的多个行号或标号,相互之间用逗号隔开 |