1
|
- 5.1 Relational and Logical Operators
- 5.2 If Blocks
- 5.3 Select Case Blocks
|
2
|
- Condition is an expression involving relational or logical operators
- Result of the condition is Boolean – that is, True or False
|
3
|
- < less than
- <= less than or equal to
- > greater than
- >= greater than or equal to
- = equal to
- <> not equal to
|
4
|
- When a = 3, b = 4
- (a + b) < 2 * a
|
5
|
- a = 4 b = 3 c = "hello" d = "bye"
- ( c.Length – b ) = ( a / 2 )
|
6
|
- Relational operators are binary – they require an operand on both sides
of the operator
- Result of a relational expression will always be Boolean
- They are evaluated from left to right with no order of operations
|
7
|
- Used for joining Boolean expressions
- Not – makes a False condition True and vice versa
- And – will yield a True if and only if both expressions are True
- Or – will yield a True if one or the other or both expressions are True
|
8
|
- To test if n falls between 2 and 5:
- (2 < n ) And ( n
< 5 )
- A complete relational expression must be on either side of the logical
operators And and Or.
|
9
|
- The following is NOT a valid way to test if n falls between 2 and 5:
- (2 < n < 5 )
|
10
|
- n = 4, answ = “Y” Are the following conditions true or
false?
- Not (n < 6)
- (answ = "Y") Or (answ = "y")
- (answ = "Y") And (answ = "y")
- Not(answ = "y")
|
11
|
- The order of operations for evaluating Boolean expressions is:
- Arithmetic operators
- Relational operators
- Logical operators
|
12
|
- Parenthesis
- Exponentiation
- Division and multiplication
- Addition and subtraction
|
13
|
- They all have the same precedence
|
14
|
|
15
|
- A common error is to replace the condition Not ( 2 < 3 ) by the
condition
- ( 2 > 3 )
- The correct replacement is ( 2 >= 3 )
- Because >= is the opposite of <, just as <= is the opposite of
>
|
16
|
- The program will take a course of action based on whether a condition is
true.
- If condition Then
- action1
- Else
- action2
- End If
|
17
|
- If condition Then
- action1
- End If
- Statement2
- Statement3
|
18
|
|
19
|
- Private Sub btnFindLarger_Click(...) _
- Handles btnFindLarger.Click
- Dim num1, num2, largerNum As
Double
- num1 = CDbl(txtFirstNum.Text)
- num2 = CDbl(txtSecondNum.Text)
- If num1 > num2 Then
- largerNum = num1
- Else
- largerNum = num2
- End If
- txtResult.Text = "The
larger number is " largerNum
- End Sub
|
20
|
- If costs = revenue Then
- txtResult.Text = "Break
even"
- Else
- If costs < revenue Then
- profit = revenue - costs
- txtResult.Text = "Profit
is " & _
-
FormatCurrency(profit)
- Else
- loss = costs - revenue
- txtResult.Text = "Loss is
" & _
-
FormatCurrency(loss)
- End If
- End If
|
21
|
- Private Sub btnEvaluate_Click(...) _
- Handles btnEvaluate.Click
- Dim answer As Double
- answer = CDbl(txtAnswer.Text)
- If (answer >= 0.5) And
(answer <= 1) Then
- txtSolution.Text = "Good,
"
- Else
- txtSolution.Text = "No,
"
- End If
- txtSolution.Text &= "it
holds about 3/4 of" _
- & " a
gallon."
- End Sub
|
22
|
- Private Sub btnDisplay_Click(...) _
- Handles btnDisplay.Click
- Dim message As String
- message = "Skittles is an
old form of bowling in " _
- & "which a wooden disk
is used to knock down nine" _
- & " pins arranged in a
square."
- If txtAnswer.Text.ToUpper =
"N" Then
- MsgBox(message, ,
"")
- End If
- txtQuote.Text = "Life ain't
all beer and skittles."
- End Sub
|
23
|
- If condition1 Then
- action1
- ElseIf condition2 Then
- action2
- ElseIf condition3 Then
- action3
- Else
- action4
- End If
|
24
|
- Private Sub btnFindLarger_Click(...) _
- Handles btnFindLarger.Click
- Dim num1, num2 As Double
- num1 = CDbl(txtFirstNum.Text)
- num2 = CDbl(txtSecondNum.Text)
- If (num1 > num2) Then
- txtResult.Text = "Larger
number is " & num1
- ElseIf (num2 > num1) Then
- txtResult.Text = "Larger
number is " & num2
- Else
- txtResult.Text = "The two
are equal."
- End If
- End Sub
|
25
|
- Function CalculateFICA(ByVal ytdEarnings As Double, _
- ByVal
curEarnings As Double) _
-
As Double
- Dim socialSecurityBenTax,
medicareTax As Double
- If (ytdEarnings + curEarnings)
<= 84900 Then
- socialSecurityBenTax = 0.062 *
curEarnings
- ElseIf ytdEarnings < 84900
Then
- socialSecurityBenTax = 0.062 *
(84900 - ytdEarnings)
- End If
- medicareTax = 0.0145 *
curEarnings
- Return socialSecurityBenTax +
medicareTax
- End Function
|
26
|
- If cond1 Then If cond1 And cond2
Then
- If cond2 Then action
- action End If
- End If
- End If
|
27
|
- When one If block is contained inside another If block, the structure is
referred to as nested If blocks.
- Care should be taken to make If blocks easy to understand.
|
28
|
- Some programs call for selecting among many possibilities. Although such
tasks can be accomplished with complicated nested If blocks, the Select
Case block (discussed in the next section) is often a better
alternative.
|
29
|
- A decision-making structure that simplifies choosing among several
actions.
- Avoids complex nested If constructs.
- If blocks make decisions based on the truth value of a condition; Select
Case choices are determined by the value of an expression called a selector.
|
30
|
- Each of the possible actions is preceded by a clause of the form
- Case valueList
- where valueList itemizes the values of the selector for which the action
should be taken.
|
31
|
- Private Sub btnEvaluate_Click(...) _
- Handles btnEvaluate.Click
- Dim position As Integer
'selector
- position =
CInt(txtPosition.Text)
- Select Case position
- Case 1
- txtOutcome.Text =
"Win"
- Case 2
- txtOutcome.Text =
"Place"
- Case 3
- txtOutcome.Text =
"Show"
- Case 4, 5
- txtOutcome.Text = "You
almost placed in the money."
- Case Else
- txtOutcome.Text = "Out
of the money."
- End Select
- End Sub
|
32
|
- Private Sub btnDescribe_Click(...)
- Handles btnDescribe.Click
- Dim position As Integer
- position =
CInt(txtPosition.Text)
- Select Case position
- Case 1 To 3
- txtOutcome.Text = "In
the money."
- Case Is >= 4
- txtOutcome.Text = "Not
in the money."
- End Select
- End Sub
|
33
|
- The general form of the Select Case block is
- Select Case selector
- Case valueList1
- action1
- Case valueList2
- action2
- Case Else
- action of last resort
- End Select
|
34
|
- Case Else (and its action) is optional
- Each value list contains one or more of the following types of items
separated by commas:
- a literal;
- a variable;
- an expression;
- an inequality sign preceded by Is and followed by a literal, variable,
or expression;
- a range expressed in the form a To b, where a and b are literals,
variables, or expressions.
|
35
|
|
36
|
- Select Case num
- Case y - x, x
- txtPhrase.Text = "Buckle
my shoe."
- Case Is <= 4
- txtPhrase.Text = "Shut
the door."
- Case x + y To x * y
- txtPhrase.Text = "Pick up
sticks."
- Case 7, 8
- txtPhrase.Text = "Lay
them straight."
- Case Else
- txtPhrase.Text = "Start
all over again."
- End Select
|
37
|
- Select Case firstName
- Case "THOMAS"
- txtReply.Text =
"Correct."
- Case "WOODROW"
- txtReply.Text = "Sorry,
his name" _
- & " was Thomas Woodrow Wilson."
- Case "PRESIDENT"
- txtReply.Text = "Are you
for real?"
- Case Else
- txtReply.Text = "Nice
try."
- End Select
|
38
|
- Function NumDays(ByVal season As String) _
- As
Integer
- Select Case season.ToUpper
- Case "WINTER"
- Return 87
- Case "SPRING"
- Return 92
- Case "SUMMER",
"AUTUMN", "FALL"
- Return 93
- End Select
- End Function
|
39
|
- In a Case clause of the form Case b To c, the value of b should be less
than or equal
to the value of c.
- The word Is should precede an inequality sign in a value list.
- If the word Is is accidentally omitted where required, the editor will
automatically insert it when checking the line.
|
40
|
- The items in the value list must evaluate to a literal of the same data
type as the selector.
- For instance, if the selector evaluated to a string value, as in
- Dim firstName As
String
firstName =
txtBox.Text
Select Case firstName
then the clause
Case
firstName.Length
would be meaningless.
|
41
|
- 5.1 Relational and Logical Operators
- 5.2 If Blocks
- 5.3 Select Case Block
|