Section 5.4. If...Then...Else Selection Statement


5.4. If...Then...Else Selection Statement

As we have explained, the If...Then selection statement performs an indicated action (or sequence of actions) only when the condition evaluates to true; otherwise, the action (or sequence of actions) is skipped. The If...Then...Else selection statement allows you to specify that a different action (or sequence of actions) is to be performed when the condition is true than when the condition is false. For example, the Visual Basic statement

 If studentGrade >= 60 Then    Console.WriteLine("Passed") Else    Console.WriteLine("Failed" End If 


prints "Passed" if the student's grade is greater than or equal to 60, and prints "Failed" if the student's grade is less than 60. In either case, after printing occurs, the next statement in sequence executes.

Figure 5.3 illustrates the flow of control in the If...Then...Else statement. Once again, note that (besides the initial state, transition arrows and final state) the only other symbols in this activity diagram represent action states and decisions.

Figure 5.3. If... Then... Else doubleselection statement activity diagram.


Nested If...Then...Else Statements

Nested If...Then...Else statements test for multiple conditions by placing If...Then...Else statements inside other If...Then...Else statements. For example, the following statement will print "A" for exam grades greater than or equal to 90, "B" for grades in the range 8089, "C" for grades in the range 7079, "D" for grades in the range 6069 and "F" for all other grades.

 If studentGrade >= 90 Then    Console.WriteLine("A") Else    If studentGrade >= 80 Then       Console.WriteLine("B")    Else       If studentGrade >= 70 Then          Console.WriteLine("C")       Else          If studentGrade >= 60 Then             Console.WriteLine("D")          Else             Console.WriteLine("F")          End If       End If    End If End If 


If studentGrade is greater than or equal to 90, the first four conditions are true, but only the Console.WriteLine statement in the body of the first test is executed. After that particular Console.WriteLine executes, the Else part of the "outer" If...Then...Else statement is skipped, and the program proceeds with the next statement after the last End If.

Good Programming Practice 5.1

If there are several levels of indentation, each level should be indented additionally by the same amount of space; this gives programs a neatly structured appearance.


Some Visual Basic programmers prefer to write the preceding If...Then...Else statement using the ElseIf keyword as

   If grade >= 90 Then      Console.WriteLine("A")   ElseIf grade >= 80 Then      Console.WriteLine("B")   ElseIf grade >= 70 Then      Console.WriteLine("C")   ElseIf grade >= 60 Then      Console.WriteLine("D")   Else      Console.WriteLine("F")   End If 


Both forms are equivalent, but the latter is popular because it avoids the deep indentation of the code. Such deep indentation often leaves little room on a line, forcing lines to be split and decreasing program readability.



Visual BasicR 2005 for Programmers. DeitelR Developer Series
Visual Basic 2005 for Programmers (2nd Edition)
ISBN: 013225140X
EAN: 2147483647
Year: 2004
Pages: 435

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net