ENGR 112 Decision Structures
Control Structures Sequence structures Selection structures Built into Visual Basic Selection structures If/Then Single selection If/Then/Else Double selection Select Case Multiple selection
Control Structures Repetition structures For/Next Do/While Loop
Selection Structures
Selection Structure Is Condition Met? NO YES Statements in Else Clause Statements in Then Clause
If/Then/Else Statement Allows us to execute one statement if TRUE and another if FALSE If A=0 Then msg = “ERROR...Division by ZERO” MsgBox(msg) Exit Sub Else C = B/A End If
If/Then/Else for checking To determine if user has entered a string in the from of a date If IsDate(variable) Then ‘do what you want with the date Else ‘provide a message to the user End If
Example Dim DT Private Sub Command1_Click() DT = Text1.Text If IsDate(DT) Then MsgBox "Good Job" Else MsgBox "please enter the text in the form of a date" End If End Sub
If/Then/Else for checking To determine if variable can be converted to a number If IsNumeric(variable) Then ‘do what you want with the number Else ‘provide a message to the user End If
Example Dim NT Private Sub Command2_Click() NT = Text2.Text If IsNumeric(NT) Then MsgBox "Good Job" Else MsgBox "please enter a number" End If End Sub
If/Then/Else Statement Nested conditional statements If A = 0 Then value = “x” Else If A=1 Then value = “y” If A=2 Then value = “z” End If
Select Case structure Practical when more than three levels of if/Then/Else are necessary Select Case inputNumber Case 0 value = “x” Case 1 value = “y” Case 2 value = “z” Case 3 value = “Null” End Select
Example Design a program to compute grades based on the average of 4 exams If the average is 90 or higher, the student gets an “A” If the average is 80 – 89, the student gets a “B” Etc.
If/Then/Else Pseudocode Version If Grade >= 90 Then YourGrade = “A” Else If Grade >= 80 Then YourGrade = “B” Else If Grade >= 70 Then etc
Case Pseudocode Select Case Grade Case is >= 90 YourGrade = “A” YourGrade = “B” Case is >= 70 YourGrade = “C” Etc.
Repetition Structures
Determinant Loops
For/Next Statement Also known as a For … Next loop Allows repetition of statements Syntax For CounterVar = StartNum to EndNum [Step StepNum] VB Statements Next CounterVar Optional Increments counter
Determinate Structure Set counter variable to starting value Is counter value greater than ending value? YES NO Increment counter variable Body of Loop Move to statements after loop
For/Next Statement Counter increments by 1 unless otherwise specified VB keyword Step is used to increment by a number other than 1 (including negative numbers) Can be terminated prematurely with keywords Exit For
E E For/Next Statement Examples For X=1 To 10 Next X Answ = 0 For X=1 To 10 Answ = Answ + X Next X For X=1 To 10 Step 2 If X > 10 Then Exit For E E
Indeterminate Loop
Do…Loop Statements Conditional loops are executed as long or until a condition exists Their key feature is the condition The condition can be A Boolean variable (True or False) Value of a property Expression (NumVal < 15)
Indeterminate Structure 1 Test at End of Loop Body of Loop Is condition met? YES Move to statements after loop NO
Do Loop – Test at End Example Dim password Do password= inputBox$(“Password please?”) Loop Until password = “Vanilla orange”
Indeterminate Structure 2 Test at Beginning of Loop Is condition met? YES Move to statements after loop NO Body of Loop
Do Loop –Test at beginning example Dim entry Dim NameCount As Integer Private Sub Command1_Click() NameCount = 0 entry = InputBox("Enter name") Do Until entry = "zzz" NameCount = NameCount + 1 Loop Print "The total number of names is "; NameCount End Sub
Do While Loop Do Loop Until variablename <> “” Loop While variablename = “” Loop Until variablename > 5 Loop While variablename <= 5 Equivalent Equivalent
Do...While/Loop Statement Example X = 10 Do While X > 0 Ht = (60 + 2.13) * X^4 Print Ht ‘Ht=Height of Rocket X = X - 1 Loop Condition Condition being affected
Problems with Loops What’s the problem with this loop? Dim i As Integer Do While i = 0 i = 0 Loop
Problems with Loops What’s the problem with this loop? Private Sub CmdDisplay_Click() Dim x As Single x = 1 Do While x > 0 x = x + 1 PicOutput.Print x Loop End Sub
Problems with Loops What’s the problem with this loop? Private Sub CmdDisplay_Click() Dim m As Single For m = 1 To 20.5 Step – 1 PicOutput.Print m Next m End Sub