0% found this document useful (0 votes)
27 views

Control Structures I II

The document discusses different control structures in computer programming languages including sequential, selection/decisions, and repetition/looping structures. It focuses on selection/decision structures, describing Visual Basic decision statements like If...Then, If...Then...Else, and Select Case. It also covers the syntax and usage of conditions, relational operators, logical operators, and If...Then versus If...Then...Else statements.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
27 views

Control Structures I II

The document discusses different control structures in computer programming languages including sequential, selection/decisions, and repetition/looping structures. It focuses on selection/decision structures, describing Visual Basic decision statements like If...Then, If...Then...Else, and Select Case. It also covers the syntax and usage of conditions, relational operators, logical operators, and If...Then versus If...Then...Else statements.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 41

CSIS 225 Lecture 7

Selection / Decisions

SELASIE BROWN
Control Structures

There are 3 control structures common to most


computer languages that determine the flow, or
path of execution, of the code:

◼Sequential

◼Selection / Decisions

◼Repetition / Looping
VB Decisions
◼Visual Basic decision statements
▪ If…Then
▪ one-way selection structure
▪ If…Then…Else
▪ two-way selection structure
▪ If…Then…ElseIf
▪ multi-way selection structure
▪ If…Then…ElseIf…Else
▪ multi-way selection structure
▪ Select Case
▪ multi-way selection structure
If…Then Decision Structure
◼If…Then decision structure
provides one choice
◼Evaluate the condition: True
Conditio
True or False n
Ex: Is it cold outside?
False
◼True – execute code
Ex: If yes, wear a coat Conditional
Code
◼False – do not execute code
Ex: If no,
If…Then Statement Syntax
If condition Then
statement[s]
End If
◼Syntax explanation:
▪ If , Then, and End – Keywords
▪ Condition – True/False value, variable, function call
or expression
▪ Statement[s] – one or more code statements to be
executed if condition is true
Conditions

◼The execution of an If block is controlled by a


condition
◼Must be (or evaluate to) either true or false
◼Can be a value, variable, or function call
(Boolean DataType)
◼Can be formed by using the six Relational
operators and the three Logical operators
Boolean Variables
◼A flag is a Boolean variable that signals when
some condition exists in the program
◼Since a Boolean variable is either True or
False, it can be used as the condition of an If
▪ Note that an operator is not required (there is
alternate syntax that does use operator)
If blnQuotaMet Then
lblMessage.Text = “Congratulations
you have met your sales quota"
End If
Boolean Functions
◼Boolean Functions return a single True or
False Value
◼Since Boolean Functions return either True or
False, a Boolean Function Call can be used as
the condition of an If
▪ Note that an operator is not required (there is
alternate syntax that does use operator)
If isNumeric(strInput) Then
intNumber = Val(strInput)
End If
Relational Operators

◼Often a condition is formed using a relational


operator
◼A relational operator determines if a specific
relationship exists between two values
▪ > Greater than
▪ < Less than
▪ = Equal to
▪ <> Not equal to
▪ >= Greater than or equal to
▪ <= Less than or equal to
Relational Operators (cont.)

◼Relational operators are binary – meaning they


use two operands
▪ Either or both relational operator operands may be
values, variables, expressions or function calls
length <= 10 (Is length less than or equal to 10)
len * wid > max + 1 (Is len * wid greater than max + 1)
Val(txtNum.Text) = 0 (Is Val result equal to 0 – not assignment)

◼Relational operators yield a True or False result


Relational Operators (cont.)
◼ Either or both relational operator operands may be
expressions
▪ Math operators are evaluated before relational operators
If x + y > a - b Then
lblMessage.Text = "It is true!"
End If
▪ x+y and a-b are evaluated first
▪ Each result is then compared using the > operator
◼ Either or both relational operator operands may be
function calls
If Val(txtInput.Text) < getMinValue() Then
lblMessage.Text = "Invalid: Below Minimum"
End If
Logical Operators
These operators are used to evaluate boolean values and
will yield a boolean result
◼And
▪ Both operands must be true for the overall expression to be true,
otherwise it is false
◼Or
▪ One or both operands must be true for the overall expression to be true,
otherwise it is false
◼Xor
▪ One operand (but not both) must be true for the overall expression to be
true, otherwise it is false
◼Not
▪ Reverses the logical value of an expression
The And Operator
The truth table for the And Operator
Expression 1 Expression 2 Expression 1 And Expression 2
True False False
False True False
False False False
True True True
If temperature < 20 And minutes > 12 Then
lblMessage.Text = “Temperature is in the danger zone."
End If

AndAlso operator works identically but does not test minutes>12 if


temperature<20 is false
The Or Operator
The truth table for the Or Operator
Expression 1 Expression 2 Expression 1 Or Expression 2
True False True
False True True
True True True
False False False
If temperature < 20 Or temperature > 100 Then
lblMessage.Text = “Temperature is in the danger zone."
End If

OrElse operator works identically but does not test temperature>100 if


temperature<20 is true
The Xor Operator
The truth table for the Xor Operator
Expression 1 Expression 2 Expression 1 Xor Expression 2
True False True
False True True
True True False
False False False
If total > 1000 Xor average > 120 Then
lblMessage.Text = “You may try again."
End If
The Not Operator
The truth table for the Not Operator
Expression 1 Not Expression 1
True False
False True

If Not temperature > 100 Then


lblMessage.Text = "You are below the max temp."
End If
Example: Checking Numerical Ranges

◼Checking for a value inside a range uses And


If x >= 20 And x <= 40 Then
lblMessage.Text = “Value is in the acceptable range."
End If

◼Checking for a value outside a range uses Or


If x < 20 Or x > 40 Then
lblMessage.Text = “Value is outside the acceptable range."
End If

◼Must pay careful attention to differences in


resulting range using: < vs <= or > vs >=
▪ Check problem requirements for ranges carefully
Precedence of Logical Operators
◼Logical operators have an order of
precedence just as arithmetic operators do
◼From highest to lowest precedence
▪ Not
▪ And
▪ Or
▪ Xor
◼As with arithmetic operations, parentheses
are often used to clarify order of operations
Relational & Logical Operators
Combined
◼For example, in the statement
▪ If x < 0 And y > 100 Or z = 50
▪ x < 0 And y > 100 is evaluated first
▪ If the And condition is true, we then evaluate
▪ True Or z = 50
▪ If the And condition is false, we then evaluate
▪ False Or z = 50
◼If the Or condition is to be evaluated first
parentheses must be used
▪ If x < 0 And (y > 100 Or z = 50)
All Operators Precedence
◼Parenthesis
◼Arithmetic
▪ Exponential
▪ Multiplication / Division
▪ Integer Division
▪ MOD
▪ Addition / Subtraction
◼String Concatenation
◼Relational Operators (< , > , >= , <= , <>)
◼Logical Operators
▪ Not
▪ And
▪ Or, Xor)
Arithmetic, Relational, & Logical
Operators Combined
◼Evaluate the following if a=5, b=7, x=100, y=30
▪ If x > a * 10 And y < b + 20
▪ Evaluating the math operators leaves us with
▪ If x > 50 And y < 27
▪ Evaluating the relational operators leaves
▪ If True And False
▪ Evaluating the logical operators leaves
▪ False
◼Parentheses make order of operations clear
▪ If (x > (a * 10)) And (y < (b + 20))
If…Then Examples
If (intSales > 50000) Then
blnGetsBonus = True
End If
-----------------------------------------------------------------
If ((blnGetsBonus)Or((intMissedDays < 2)And(intSales > 30000)))
intDaysOff = intDaysOff + 1
intEmpRating += 1
End If
-----------------------------------------------------------------
If (Not(isNumeric(txtInput.text))) Then
txtInput.text = “”
MsgBox(“Please enter a number in the textbox”)
End If
-----------------------------------------------------------------
If (intGrade >= 80)And(intGrade < 90) Then lblMessage.text = “B”
-----------------------------------------------------------------
If ((Val(txtGrade.text) < 0)Or(Val(txtGrade.text) > 100)) Then
lblMessage.text = “Invalid Grade: Not in the range 0-100”
End If
If…Then vs If…Then…Else
The If…Then construct
will execute or ignore a False Conditi True
group of statements (do on
something or do nothing)
Statement(s) Statement(s)
If False If True
True
Conditi
on The If…Then…Else
construct will execute one
False
group of statements or
Statement(s)
If True another group (do this or do
that)
If…Then…Else Decision Structure
◼If…Then…Else
provides two choices False Conditio True

◼Evaluate condition: n

True or False
◼True – execute code Statement(s)
If False
Statement(s)
If True
in If…Then block
◼False – execute code
in Else Block
◼One of the two choices must be selected
◼They are mutually exclusive
If…Then…Else Syntax
If condition Then
statement[s]1
Else
statement[s]2
End If
◼Syntax explanation:
▪ If , Then, Else, and End – Keywords
▪ Condition – True/False value, variable, function call or
expression
▪ Statement[s]1 – executed if condition is True
▪ Statement[s]2 – executed if condition is False
If…Then…Else Examples
If (intSales > 50000) Then
blnGetsDoubleBonus = True
decBonus = 4000.00
Else
decBonus = 2000.00
End If
-----------------------------------------------------------------
If (Not(isNumeric(txtInput.text))) Then
MsgBox(“You did not enter a valid number – program will end”)
End
Else
intNumber = Val(txtInput.text)
End If
-----------------------------------------------------------------
If (intTemp >= 60)And(intTemp < 90)And(VisibRating() > 5) Then
lblMessage.text = “Go - Weather conditions are ideal”
Else
lblMessage.text = “Wait - Weather conditions unacceptable”
End If
If…Then…ElseIf Decision Structure
◼If…Then…ElseIf True
allows for multiple C
1 Statement(s)1
False
mutually exclusive True
choices C
2
Statement(s)2

◼Each of the conditions False


True
is tested in sequence C
3
Statement(s)3

◼When a condition is False

true, the corresponding


code is executed and the
remaining conditions are ignored
If…Then…ElseIf Conditions
If it is very cold Then
Wear a coat
Elseif it is chilly
Wear a light jacket
Elseif it is windy
Wear a windbreaker
Elseif it is hot
Wear no jacket
◼The order of the conditions is vital
▪ Wrong order can result in wrong decision
▪ What if it’s chilly and windy?
▪ If windy is tested before chilly, you’d go out with a
windbreaker when you need a jacket
If…Then…ElseIf Syntax
◼Syntax explanation: If condition1 Then
▪ If , Then, ElseIf, and End – statement[s]1
Keywords ElseIf condition2
▪ Condition1 thru n – True/False
statement[s]2
value, variable, function •••
call or expression ElseIf conditionn
▪ Statement[s]1 – executed if
statement[s]n
condition1 is True
End If
▪ Statement[s]2 – executed if condition1 is False and if
condition2 is True
▪ Statement[s]n – executed if condition1 thru (n-1) is False and
If…Then…ElseIf Examples
If sngAvg < 59.5 Then If radCredCrd.checked Then
lblGrade.Text = "F" CredCrdPayment(decSubTot)
ElseIf sngAvg < 69.5 Then ElseIf radDebCrd.checked Then
lblGrade.Text = "D" DebCrdPayment(decSubTot)
ElseIf sngAvg < 79.5 Then ElseIf radCheck.checked Then
lblGrade.Text = "C" CheckPayment(decSubTot)
ElseIf sngAvg < 89.5 Then End If
lblGrade.Text = "B"
ElseIf sngAvg <= 100 Then
lblGrade.Text = "A"
End If

◼ In each example, does the order of the conditions matter?


◼ What happens if the order is reversed in each example?
If…Then…ElseIf…Else (Trailing Else)
◼If…Then…ElseIf…
True
Else is simply an C1 Statement(s)1

If…Then…ElseIf False

with an Else at the end C2


True
Statement(s)2
◼Called a Trailing Else False

◼If the initial If and none C3


True
Statement(s)3
of the ElseIf conditions False
are True, the trailing Statement(s)Else
Else statement(s) will
be executed
If…Then…ElseIf …Else Syntax
◼Syntax explanation: If condition1 Then
▪ Same as If..Then…ElseIf statement[s]1
thru statement[s] n •••
▪ Statement[s]Else – ElseIf conditionn
executed if condition1 thru n statement[s]n
(all previous conditions) Else
are False statement[s]Else
End If
If…Then…ElseIf…Else Examples
If sngAvg < 59.5 Then If intCredScr >= 700 Then
lblGrade.Text = "F" strLoanType = “Prime”
ElseIf sngAvg < 69.5 Then intLoanRate = 1
lblGrade.Text = "D" ElseIf intCredScr >= 600 Then
ElseIf sngAvg < 79.5 Then strLoanType = “Standard”
lblGrade.Text = "C" intLoanRate = 2
ElseIf sngAvg < 89.5 Then ElseIf intCredScr >= 500 Then
lblGrade.Text = "B" strLoanType = “Risk”
ElseIf sngAvg <= 100 Then intLoanRate = 3
lblGrade.Text = "A“ ElseIf intCredScr >= 400 Then
Else strLoanType = “HiRisk”
lblGrade.Text = "Invalid" intLoanRate = 4
End If Else
MsgBox(“Not Qualified“)
End
End If
Nested If

◼If Statements Within If Statements


◼Any type of statement may be used inside the
statement(s) portion of any form of If
◼This includes other If statements
◼If statements within If statements create a
more complex decision structure called a
Nested If
Nested If Example
◼ A customer qualifies for a special rate loan if:
▪ If credit score is higher than 650 and
▪ Income is more than 30000 Or Debt is less than 1000
▪ Or If credit score is higher than 700
If intCredScr > 650 Then
If decIncome > 30000 Then
lblMessage.Text = “qualified"
ElseIf DecDebt < 1000
lblMessage.Text = “qualified“
Else
lblMessage.Text = “not qualified“
End If
ElseIf intCredScr > 700 Then
lblMessage.Text = “qualified"
Else
lblMessage.Text = “not qualified“
End If
Select Case Statement
◼Similar to If…Then…ElseIf
▪ Performs a series of tests
▪ Conditionally executes the first true condition
◼Select Case is different in that:
▪ A single test expression may be evaluated
▪ The test expression is listed once
▪ The possible values of the expression are then
listed with their conditional statements
◼Case Else may be included and executed
if none of the values match the expression
Select Case Statement Examples
Select Case Val(txtInput.Text) Select Case strAnimal
Case 1 Case "Dog“,"Cat"
MsgBox("Day 1 is Monday.") MsgBox("House Pet")
Case 2 Case "Cow“,"Pig“,"Goat"
MsgBox("Day 2 is Tuesday.") MsgBox("Farm Animal")
Case 3 Case "Lion“,"Tiger“,"Bear"
MsgBox("Day 3 is Wednesday.") MsgBox("Oh My!")
Case 4 End Select
MsgBox("Day 4 is Thursday.")
Case 5 Select Case intScore
MsgBox("Day 5 is Friday.") Case Is >= 90
Case 6 strGrade =
MsgBox("Day 6 is Saturday.") “A”
Case 7 Case 80 to 89
MsgBox("Day 7 is Sunday.") strGrade =
Case Else “B”
MsgBox("The value is invalid.") Case 70 to 79
End Select strGrade =
“C”
Case 60 to 69
strGrade =
Example Decision Problems
Write a program that will prompt the user to input a
number. Check for valid input. If the input is invalid (non-
numeric) – give an error message via MsgBox and end the
Event Procedure. If valid – assign the number to a variable
and output the number to the user

Now experiment with validity checking for more restrictive


input criteria with numbers (ex: only numbers from 1-100,
only integers, only positive integers, etc.) and text (ex: only
single characters, only the letters a-d, etc.)
Example Decision Problems
Write a program that inputs 2 values and displays their
positive difference. For example, if the first input is 6 and
the second input is 9, then the positive difference is 3
(note: 3 is still the answer if the first input is 9 and the
second input is 6).

Now add the code to handle invalid (non-numeric) input .


Example Decision Problems
Write a VB application to have the user input via textbox an integer
from 1 t0 100,000 (inclusive). Determine if the input is a valid. If
invalid, give an error message, clear the textbox, and end the event
procedure (discuss). If valid, use a boolean function to determine if
the integer is even or odd and use an integer function to determine if
the integer is a perfect square (return the root if yes, return -1 if
no). Report your results via label.

Write a VB application to have the user input a 2 digit binary number


via input box. Determine if the input is a valid 2 digit binary number.
If not give a specific error message and terminate the app. If valid,
convert the number to a decimal value (try using a function to do
this) and report the results via message box. (try with 3 digits)
Homework

◼Lab 6 and Homework 6


▪ Visual Basic – Decisions
▪ See handout for details and due date
▪ Questions?

You might also like