Chapter 4
Making Decisions
Topics
4.1 Decision Structures and the if Statement
4.2 The if-else Statement
4.3 Nested Decision Structures
4.4 Logical Operators
4.5 bool Variables and Flags
4.6 Comparing Strings
4.7 Preventing Data Conversion Exceptions with the TryParse Method
4.8 Input Validation
4.9 Radio Buttons and CheckBoxes
4.10 The switch Statement
4.11 Introduction to List Boxes
Module Code and Module Title Title of Slides
4.1 Decision Structures
A control structure is a logical design that
controls the order in which statements execute
A sequence structure is a set of statements
that execute in the order that they appear
A decision structure execute statements only
under certain circumstances
A specific action is performed only if a certain
condition exists
Also known as a selection structure
Module Code and Module Title Title of Slides
A Simple Decision Structure
The flowchart is a single-alternative decision
structure
It provides only one alternative path of
execution
In C#, you can use the if statement to write
Cold True
such structures. A generic format is:
outside
if (expression)
{ Wear a coat
Statements; False
Statements;
etc.;
}
The expression is a Boolean expression that
can be evaluated as either true or false
Module Code and Module Title Title of Slides
Relational Operators
A relational operator determines whether a specific
relationship exists between two values
Operator Meaning Expression Meaning
> Greater than x>y Is x greater than y?
< Less than x<y Is x less than y?
>= Greater than or equal to x >= y Is x greater than or equal to y?
<= Less than or equal to x <= y Is x less than or equal to you?
== Equal to x == y Is x equal to y?
!= Not equal to x != y Is x not equal to you?
Module Code and Module Title Title of Slides
if Statement with Boolean
Expression
if (sales > 50000) sales > True
{ 50000
bonus = 500; bonus = 500
} False
Module Code and Module Title Title of Slides
4.2 The if-else statement
An if-else statement will execute one block of statement
if its Boolean expression is true or another block if its
Boolean expression is false
It has two parts: an if clause and an else clause
In C#, a generic format looks:
if (expression)
{
statements;
}
else
{
statements;
}
Module Code and Module Title Title of Slides Copyright 2014 Pearson Education, Inc.
Example of if-else Statement
if (temp > 40)
{
False True
temp >40 [Link](hot);
}
else
display cold display hot {
[Link](cold);
}
Module Code and Module Title Title of Slides Copyright 2014 Pearson Education, Inc.
4.3 Nested Decision
Structures
You can create nested decision structures to test more than one
condition.
Nested means one inside another
In C#, a generic format is: if (expression)
{
if (expression)
{
statements;
}
else
{
statements;
}
}
else
{
statements
}
Module Code and Module Title Title of Slides
A Sample Nested Decision
Structure
if (salary >= 40000)
{
if (yearOnJob >= 2)
{
[Link] = "You qualify for the load."
}
else
{
[Link] = "Minimum years at current Salary >=
" + "job not met." 400000
}
} Display Minimum
salary requirement not yearsOnJob
else met. >= 2
{
[Link] = "Minimum salary
Display Minimum
requirement " + "not met." years at current job
Display You qualify
for the load.
} not met.
End
Module Code and Module Title Title of Slides
The if-else-if Statement
You can also create a decision structure that evaluates multiple
conditions to make the final decision using the if-else-if statement
In C#, the generic format is: int grade = [Link]([Link]);
if (grade >=90)
if (expression) {
[Link]("A");
{
}
} else if (grade >=80)
else if (expression) {
[Link]("B");
{ }
} else if (grade >=70)
{
else if (expression)
[Link]("C");
{ }
} else if (grade >=60)
{
[Link]("D");
else }
else
{
{
} [Link]("F");
}
Module Code and Module Title Title of Slides Copyright 2014 Pearson Education, Inc.
4.4 Logical Operators
The logical AND operator (&&) and the logical OR operator (||) allow
you to connect multiple Boolean expressions to create a compound
expression
The logical NOT operator (!) reverses the truth of a Boolean
expression
Operator Meaning Description
&& AND Both subexpression must be true for the compound expression to be true
|| OR One or both subexpression must be true for the compound expression to
be true
! NOT It negates (reverses) the value to its opposite one.
Expression Meaning
x >y && a < b Is x greater than y AND is a less than b?
x == y || x == z Is x equal to y OR is x equal to z?
! (x > y) Is the expression x > y NOT true?
Module Code and Module Title Title of Slides Copyright 2014 Pearson Education, Inc.
Sample Decision Structures with
Logical Operators
The && operator
if (temperature < 20 && minutes > 12)
{
[Link](The temperature is in the danger zone.);
}
The || operator
if (temperature < 20 || temperature > 100)
{
[Link](The temperature is in the danger zone.);
}
The ! Operator
if (!(temperature > 100))
{
[Link](The is below the maximum temperature.);
}
Module Code and Module Title Title of Slides Copyright 2014 Pearson Education, Inc.
4.5 bool Variables and Flags
You can store the values true or false in bool variables,
which are commonly used as flags
A flag is a variable that signals when some condition
exists in the program
False indicates the condition does not exist
True indicates the condition exists
if (grandMaster)
{
powerLevel += 500;
}
If (!grandMaster)
{
powerLevel = 100;
}
Module Code and Module Title Title of Slides Copyright 2014 Pearson Education, Inc.
4.6 Comparing Strings
You can use certain relational operators and methods to
compare strings. For example,
The == operator can compare two strings
string name1 = Mary;
string name2 = Mark;
if (name1 == name2) { }
You can compare string variables with string literals, too
if (month ! = October) { }
The [Link] method can compare two strings
string name1 = Mary;
string name2 = Mark;
if ([Link](name1, name2) == 0) { }
Module Code and Module Title Title of Slides Copyright 2014 Pearson Education, Inc.
4.7 Preventing Data Conversion
Exception
Exception should be prevented when possible
The TryParse methods can prevent exceptions caused by users
entering invalid data
[Link]
[Link]
[Link]
The generic syntax is:
[Link](string, out targetVariable)
The out keyword is required; it specifies that the targetVariable is an
output variable
Module Code and Module Title Title of Slides Copyright 2014 Pearson Education, Inc.
Samples of TryParse
Methods
// [Link]
int number;
if ([Link]([Link], out number)) { } else { }
//[Link]
double number;
if ([Link]([Link], out number)) { } else { }
//[Link]
decimal number;
if ([Link]([Link], out number)) { } else { }
Module Code and Module Title Title of Slides Copyright 2014 Pearson Education, Inc.
4.8 Input Validation
Input validation is the process of inspecting data that has been
entered into a program to make sure it is valid before it is used
TryParse methods check if the user enters the data, but it does not
check the integrity of the data. For example,
In a payroll program we might validate the number of hours worked.
if (hours > 0 && hours <= 168) { } else { }
In a program that gets test scores, we can limits its data to an integer
range of 0 through 100.
if (testScore >= 0 && testScore <=100) { } else { }
Module Code and Module Title Title of Slides Copyright 2014 Pearson Education, Inc.
4.9 Radio Buttons and Check
Boxes
Radio buttons allow users to select one choice from
several possible choices
Clicking on a radio button, the program automatically deselects
any others. This is known as mutually exclusive selection
Check boxes allows users to select multiple options
Module Code and Module Title Title of Slides Copyright 2014 Pearson Education, Inc.
RadioButton Control
The .NET Framework provides the RadioButton
Control for you to create a group of radio buttons
Common properties are:
Text: holds the text that is displayed next to the radio
button
Checked: a Boolean property that determines
whether the control is selected or deselected
Module Code and Module Title Title of Slides Copyright 2014 Pearson Education, Inc.
Working with Radio Buttons in
Code
In code, use a decision structure to determine
whether a RadioButton is selected. For example,
If ([Link]) { } else { }
You do not need to use the == operator,
although the following is equivalent to the above
If ([Link] == true) { } else { }
Module Code and Module Title Title of Slides Copyright 2014 Pearson Education, Inc.
CheckBox Control
The .NET Framework provide the CheckBox
Control for you to give the user an option, such
as true/false or yes/no
Common properties are:
Text: holds the text that is displayed next to the radio button
Checked: a Boolean property that determines whether the
control is selected or deselected
In code, use a decision structure to determine
whether a CheckBox is selected. For example,
If ([Link]) { } else { }
Module Code and Module Title Title of Slides Copyright 2014 Pearson Education, Inc.
The CheckedChanged Event
Anything a RadioButton or a CheckBox controls
Checked property changes, a CheckedChanged event is
raised
You can create a CheckedChanged event handler and
write codes to respond to the event
Double click the control in the Designer to create an
empty CheckedChanged event handler similar to:
private void yellowRadioButton_CheckedChanged(object sender, EventArgs e) { }
Module Code and Module Title Title of Slides Copyright 2014 Pearson Education, Inc.
4.10 The switch Statement
The switch statement lets the value of a
variable or an expression determine which path
of execution the program will take
It is a multiple-alternative decision structure
It can be used as an alternative to an if-else-if
statement that tests the same variable or
expression for several different values
Module Code and Module Title Title of Slides Copyright 2014 Pearson Education, Inc.
Generic Format of switch
Statement
swtich (testExpression)
{
The testExpression is a variable or an
case value_1:
statements;
expression that given an integer,
break; string, or bool value. Yet, it cannot be
case value_2: a floating-point or decimal value.
statements;
Each case is an individual subsection
break;
containing one or more statements,
case value_n: followed by a break statement
statements; The default section is optional and is
break;
designed for a situation that the
default:
statements;
testExpression will not match with any
break; of the case
}
Module Code and Module Title Title of Slides Copyright 2014 Pearson Education, Inc.
Sample switch Statement
switch (month)
{
case 1:
[Link](January);
break;
month
case 2:
[Link](February);
break;
case 3: Display
Display Display Display Error:
[Link](March); January February March Invalid
month
break;
default:
[Link](Error: Invalid month);
break;
}
Module Code and Module Title Title of Slides Copyright 2014 Pearson Education, Inc.
4.11 Introduction to List
Boxes
A list box displays a list of items and allow the user to select an item
from the list
In C#, you can use the ListBox control to create a list box
Commonly used properties are:
Text: Gets or searches for the text of the currently selected item in the
ListBox
Items: Gets the items of the ListBox
SelectedItem: Gets or sets the currently selected item in the ListBox.
When the user selects an item, the item is stored in this property. You
can use the following to get the selected item from a list box:
selectedFruit = [Link]();
SelectedIndex: Gets or sets the zero-based index of the currently
selected item in a ListBox
Module Code and Module Title Title of Slides Copyright 2014 Pearson Education, Inc.
SelectedItem
An exception will occur if you try to get the value of a
ListBoxs SelectedItem property when no item is
selected
Items in a list box have an index starting with 0
The first item has index 0, the nth item has index n-1
The SelectedIndex property keeps the index. If no item is
selected the, value of SelectedIndex is -1
The following is an example to use SelectedIndex
property to make sure that an item is selected before you
get the value from SelectedItem.
if ([Link] != -1) { }
Module Code and Module Title Title of Slides Copyright 2014 Pearson Education, Inc.