Title: Chapter 4 Introduction to Control Statements
1Chapter 4Introduction to Control Statements
2Objectives
- Use the increment and decrement operators.
- Use standard math methods.
- Use if and if-else statements to make choices.
3Objectives (cont.)
- Use while and for loops to repeat a process.
- Construct appropriate conditions for control
statements using relational operators. - Detect and correct common loop errors.
4Vocabulary
- Control statements
- Counter
- Count-controlled loop
- Entry-controlled loop
- Flowchart
- Infinite loop
5Vocabulary (cont.)
- Iteration
- Off-by-one error
- Overloading
- Sentinel
- Task-controlled loop
6Additional Operators
- Extended assignment operators
- Assignment operator combined with arithmetic and
concatenation operators
7Additional Operators (cont.)
- Increment operator
- Increase value of operand by 1
- Decrement operator --
- Decrease value of operand by 1
8Standard Classes and Methods The Math Class
Table 4-1 Seven methods in the Math class
9Standard Classes and Methods The Math Class
(cont.)
- The two abs() methods are overloaded.
- Overloaded Multiple methods in the same class
with the same name - Using sqrt() method example
10Standard Classes and Methods The Math Class
(cont.)
- Math class methods example
11Standard Classes and Methods The Random Class
- Random number generator Returns numbers chosen
at random from a pre-designated interval
Table 4-2 Methods in the Random class
12A Visit to the Farm
13The if and if-else Statements
14The if and if-else Statements (cont.)
15The if and if-else Statements (cont.)
- Better to over-use braces than under-use them
- Can help to eliminate logic errors
- Condition of an if statement must be a Boolean
expression - Evaluates to true or false
- A flowchart can be used to illustrate the
behavior of if-else statements.
16The if and if-else Statements (cont.)
Figure 4-1 Flowcharts for the if and if-else
statements
17The if and if-else Statements (cont.)
- Examples of if statements
18The if and if-else Statements (cont.)
Table 4-3 Relational operators
19The if and if-else Statements (cont.) Checking
Input for Validity
Example 4.1 Computes the area of a circle if
the radius gt 0 or otherwise displays an error
message
20The while Statement
- Provides a looping mechanism
- Executes statements repeatedly for as long as
some condition remains true
21The while Statement (cont.)
Figure 4-2 Flowchart for a while statement
22The while Statement (cont.)
- Counter-controlled loop
- cntr is the counter
- Loop repeats a determined number of times
23The while Statement (cont.)
- Tracing Track value of variables through each
iteration of the loop
Table 4-4 Trace of how variables change on each
iteration through a loop
24The while Statement (cont.)
25The while Statement (cont.)
- Task-controlled loop Continues to execute until
some task is accomplished
26The while Statement (cont.)
- Common structure of a while loop
27The while Statement (cont.)
Example 4.2 Compute and display the factorial of
n
28The for statement
- Combines counter initialization, condition test,
and update into a single expression - Easy to create count-controlled loops
29The for statement (cont.)
30The for statement (cont.)
31The for statement (cont.)
- Better to declare the loop control variable
within the loop header - Only visible within the loop
- Variable name can be reused later in other loops
32The for statement (cont.)
- Both for loops and while loops are
entry-controlled loops. - Condition tested at top of loop on each pass
- Choosing a for loop versus a while loop is often
a matter of style. - for loop advantages
- Can declare loop control variable in header
- Initialization, condition, and update in one line
of code
33Nested Control Statements and the break Statement
- Control statements may be nested.
34Nested Control Statements and the break Statement
(cont.)
- break statement Prematurely end a loop
35Nested Control Statements and the break Statement
(cont.)
- Sentinel-controlled input Continue a loop until
a sentinel variable has a specific value
36Using Loops with Text Files
- Advantages of using text files versus input from
a human user - Data sets can be much larger.
- Data input quickly, with less chance of error.
- Data can be used repeatedly.
- Data files can be created by hand in a text
editor or generated by a program.
37Using Loops with Text Files (cont.)
- Text file format
- If data is numerical, numbers must be separated
by white space. - Must be an end-of-file character
- Used by program to determine whether it is done
reading data - When an error occurs at run-time, the JVM throws
an exception. - IOException thrown if error occurs during file
operations
38Using Loops with Text Files (cont.)
Example 4.3 Computes and displays the average of
a file of floating-point numbers
39Using Loops with Text Files (cont.)
Example 4.4 Inputs a text file of integers and
writes these to an output file without the zeroes
40Errors in Loops
- May occur in initializing statements, terminating
conditions, body statements, or update statements - Initialization error Failure to initialize or
initializes to incorrect value - Off-by-one error Loop iterates one too many or
one too few times
41Errors in Loops (cont.)
- Infinite loop Error in the terminating condition
- Loop never terminates
- Errors in loop body affect whether the loop
completes its task correctly or at all. - Update error Update statements in wrong place
may affect calculations - Failing to update at all results in an infinite
loop.
42Errors in Loops (cont.)
- Effects of limited floating-point precision When
using floating-point variables as loop control
variables, you must understand that not all
values can be represented. - Better not to use or ! in condition statement
under these conditions
43Errors in Loops (cont.)
- Debugging loops
- If an error is suspected, make sure that
- Variables are initialized before entering the
loop - The terminating condition stops the iterations
when the test variables have reached the intended
limit - The statements in the body are correct
44Errors in Loops (cont.)
- Debugging loops (cont.)
- If an error is suspected, make sure that
- The update statements are positioned correctly
and modify the test variables so that they
eventually pass the limits tested in the
terminating condition
45Graphics and GUIs I/O Dialog Boxes and Loops
- A convenient way to accept input from a user is
to pop up an input dialog box. - Use JOptionPane.showInputDialog().
Figure 4-4 Input dialog box
46Graphics and GUIs I/O Dialog Boxes and Loops
(cont.)
- If expected input is a number, must use
Integer.parseInt() or Double.parseDouble() - To output a message, use a message dialog box.
- JOptionPane.showMessageDialog( anObserver,
aString)
47Graphics and GUIs I/O Dialog Boxes and Loops
(cont.)
Example 4.5 CircleArea with dialog I/O
48Graphics and GUIs I/O Dialog Boxes and Loops
(cont.)
Figure 4.5 Dialog I/O user interface for the
circle area program
49Graphics and GUIs I/O Dialog Boxes and Loops
(cont.)
- Setting up multiple panels
- Can use a loop to initialize and install panels
- Setting the preferred size of a panel
- Use JPanel classs setPreferredSize() method.
- JFrame classs pack() method will cause the
window to adjust its size to exactly fit the
preferred size of any contained panels.
50Graphics and GUIs I/O Dialog Boxes and Loops
(cont.)
Example 4-7 Color panel whose background is a
color provided by the client. A client-specified
preferred size is optional.
51Design, Testing, and Debugging Hints
- Most errors involving selection statements and
loops are not syntax errors. - The presence or absence of the symbols can
seriously affect the logic of a selection
statement or loop. - When testing programs that use if or if-else
statements, use test data that forces the program
to exercise all logical branches.
52Design, Testing, and Debugging Hints (cont.)
- Use an if-else statement rather than two if
statements when the alternative courses of action
are mutually exclusive. - When testing a loop, be sure to use limit values
as well as typical values. - Be sure to check entry conditions and exit
conditions for each loop.
53Design, Testing, and Debugging Hints (cont.)
- For a loop with errors, use debugging output
statements to verify the values of the control
variable on each pass through the loop. - Text files are convenient to use when the data
set is large, when the same data set must be used
repeatedly with different programs, and when
these data must be saved permanently.
54Summary
- Java has operators for extended assignment and
for increment and decrement. - The Math class provides several useful methods,
such as sqrt and abs. - The Random class allows you to generate random
integers and floating-point numbers. - if and if-else statements are used to make
one-way and two-way decisions.
55Summary (cont.)
- The comparison operators, such as , lt, and gt,
return Boolean values that can serve as
conditions for control statements. - The while loop allows the program to run a set of
statements repeatedly until a condition becomes
false. - The for loop is a more concise version of the
while loop.
56Summary (cont.)
- Other control statements, such as an if
statement, can be nested within loops. - A break statement can be used with an if
statement to terminate a loop early. - Many kinds of logic errors can occur in loops.
- Off-by-one error
- Infinite loop