4.3 选择结构(或称分支结构) 1. IF条件语句" S; H: } h% Z2 S+ U) h
(1)If……Then语句(单分支结构 F)) J: _1 G/ A4 B7 }
语句形式:
8 _. b# B8 ?' G7 g F9 Q# D 1)If Then J. z. C- j4 Q0 L$ k1 |$ X7 B3 X
语句块
! V ?! s6 o j W+ ?; U End If
9 G9 |- J5 i8 x7 | 2)If Then
9 l! E: Y6 B, k9 Z# Y) S. W+ v& y/ w 说明:表达式一般为关系表达式、逻辑表达式,也可以为算术表达式,非0为True,0为False;% U1 ~ e9 `; Z; q6 s& x8 r
语句块可以是一句或多句,若用2)表示,则只能是一句语句,若多句,语句间需用冒号分隔,而且必须在一行上书写。
( ~7 r; G! C( T 例:已知两个数x和y,比较它们的大小,使得 x大于y:
9 w% V) p# N6 X; x 方法一: if x
; P. _8 t2 @ Z. U; y2 C4 U t=x
7 X: `' U: m2 v& l. d) ]5 a x=y3 ~( ]: } R( B$ q- T
y=t! ^+ \, E6 ?8 f3 M# M
end if
5 r. o" [; E1 s6 [; E 方法二: if x
) X# C, ?' h# v# k" U 注意:将两个变量中的数进行交换时,必须借助于第三个变量才能实现。
+ \4 ^' W3 o2 u' o5 A6 {: E (2)If……Then……Else语句(双分支结构)
- q5 k! `7 k6 `# G2 \& ?& B) d 语句形式:- U. D8 `6 R4 G% L, ]: w
1)If Then& _' I: ^- m1 I1 _: u% W0 T
$ X3 T- G- A$ e3 P. { Else
) M! O- P* t- ] " Q! ^, r/ u5 c! H" Q% |$ p# L
End If
6 |' w/ w! }* P8 I6 C$ Z' H 2) If Then Else 0 y8 A/ V& U9 a8 ]5 _
例: x2 -5 x≠0' p6 `" Q. U* z9 E
3x +2 x=0* k. P) `+ X3 v- ?7 h+ Y
(3)If……Then……ElseIf语句(多分支结构): ^& W7 d5 z( t7 C& _$ J
语句形式:
8 Y: j, m! M4 q/ A) a If Then6 Z# I; M/ t H4 p/ h
2 S5 o/ L6 \$ t" b b
ElseIf Then& e$ P& G2 U% m# i. {: M# \5 b
; N, U/ \( h0 U+ g n
……
( [" t4 q- K! i0 [) \' ^$ a+ e [ Else 语句块 n+1 ]0 |8 C, I4 Z, P) h7 C) y, O$ z% [+ w
End If
3 f5 W, m+ B8 z6 Z+ _" `9 ` 注意 :; i% e+ U6 Z4 s6 G$ i D
1)不管有几个分支,程序执行了一个分支后,其余分支不再执行;
' L+ _- R9 P$ {8 [7 k 2)ElseIf 不能写成Else If
% i3 u) m, @) p, L8 B( C# h 3)当多分支中有多个表达式同时满足,则只执行第一个与之匹配的语句块
/ U( Y; Y% Y2 p2 B+ a4 y 例:已知变量strC中存放了一个字符,判断该字符是字母字符、数字字符还是其他字符。
- M( n8 n2 t4 Y9 K' i3 E (4)If语句的嵌套
' q; P9 x9 A; c( w9 w If语句的嵌套是指if 或else后面的语句块中又包含If语句。语句形式:
: d8 T" Y: O, d, K If Then2 ~: D+ Z2 m4 u! [( |5 e
If Then
) Q* G9 ^, Y* J. U& ]% _, A% ~ ……
8 B2 a; g. x- X7 }$ p End If
$ r3 q! a: e/ O8 t* N% m$ q% ? ……0 N9 c2 u5 Z( F* {/ p2 V; {
End If
7 x/ q- M; {# E, C; e- u 注意:% Z* ]2 ^6 r- r* a: c/ n
1)对于嵌套结构,为了增强程序的可读性,应该采用缩进形式书写;" \9 w( w5 l" w( |
2)If语句形式若不在一行上书写,必须与End If配对,多个if嵌套,End If与它最接近的Emd If配对。( o1 Z J" x5 c+ b* K# N) O
例: 已知x、y、z三个数,比较它们的大小并排序,使得x>y>z.
9 y% I' T/ `' v# h- q" [' ~" T 2. Select Case语句(情况语句)( ~, @+ a1 F- L+ l' D
Select Case语句(情况语句)是多分支语句的又一种形式,语句形式:
* w5 N$ T" o% ?) {; a( z Select Case 变量或表达式( Q1 ?- m6 k: f0 H8 ?
Case 表达式列表1
[* u, m/ t# X# [ F5 X 语句块14 z3 M' |, H# q; [) r
Case 表达式列表21 D/ G4 ^3 x. [7 H* k9 U
语句块20 X5 z! Z* f' n( i& q( m7 {
……
1 o0 a, |* j/ { [Case Else
# `5 q& V5 V3 t# V; e# b4 C$ v 语句块n+1]0 n* @! c- |% e6 |1 l
End Select! w5 v0 N3 Y: r4 i& G# i) J0 c/ Z2 q+ A
说明:1)变量或表达式可以是数值型或字符串表达式
_8 }4 D8 l$ m3 S% H 2)表达式列表I 可以是表达式、一组用逗号分隔的枚举值、表达式1 to 表达式2、Is关系运算符表达式;如:case 1 to 10 、 case "a","w","e","t" 、 case 2,4,6,8,is>10
7 R; o2 a# P! ]* Y- }" Z5 H 3)并不是所有的多分支结构都可以用情况语句代替的。
% g( L' M l( r) q* ]# k 例:已知输入某课程的百分制成绩mark,要求显示对应五级制的评定,评定条件如下:: N0 \$ t% G( J5 |2 u
6 X& x: x# Y, D( ~4 w6 p 3. 条件函数8 |2 g9 K8 E" A: G W8 r* g4 h
(1)if函数
& U9 K" e( s5 _/ Z$ J' R Q5 J. b: V 函数形式: Iif(表达式,当条件为True时的值,当条件为False时的值.例:求X、Y中大的数,并放入变量Tmax中: Tmax=Iif(X>Y, X, Y). c- w- ?- h1 Q! }* V
(2)Choose函数
/ W: Z; ~4 @& F8 w9 C2 r8 U 函数形式:Choose(整数表达式,选项列表)8 \* o* O- V" d' |$ `2 p6 x
如果整数表达式的值是1,则选择列表中的第1项,依次类推;如果小于1或大于列表项数时,则返回NULL。& {* c- Q/ y, O7 t! w7 Z0 A+ d. K
例: 根据nub为1 -4的值,换算成不同的运算符: OP= Choose(nub,“+”,“-”,“×”,“÷”) |