03 Slide
03 Slide
Selection
Statements
–Using if and if...else
–Nested if Statements
–Using switch Statements
–Conditional Operator
Repetition Statements
–Looping: while, do-while, and for
–Nested loops
–Using break and continue
Selection Statements
if Statements
switch Statements
Conditional Operators
if Statements
if (booleanExpression) {
statement(s);
}
Example:
if ((i > 0) && (i < 10)) {
System.out.println("i is an " +
"integer between 0 and 10");
}
Caution
Adding a semicolon at the end of an if clause
is a common mistake.
if (radius >= 0); Wrong
{
area = radius*radius*PI;
System.out.println(
"The area for the circle of radius " +
radius + " is " + area);
}
This mistake is hard to find, because it is
not a compilation error or a runtime error, it
is a logic error.
This error often occurs when you use the next-
line block style.
The if...else Statement
if (booleanExpression) {
statement(s)-for-the-true-case;
}
else {
statement(s)-for-the-false-case;
}
if...else Example
if (radius >= 0) {
area = radius*radius*PI;
TestIfElse Run
switch Statements
switch (year) {
case 7: annualInterestRate = 7.25;
break;
case 15: annualInterestRate = 8.50;
break;
case 30: annualInterestRate = 9.0;
break;
default: System.out.println(
"Wrong number of years, enter 7, 15, or 30");
}
switch Statement Flow Chart
switch Statement Rules
The switch-expression must yield a value of
char, byte, short, or int type and must always
be enclosed in parentheses.
switch (numOfYears) {
case 7: annualInterestRate = 7.25;
case 15: annualInterestRate = 8.50;
case 30: annualInterestRate = 9.0;
default: System.out.println("Wrong number of years");
}
Conditional Operator
if (x > 0) y = 1
else y = -1;
is equivalent to
y = (x > 0) ? 1 : -1;
Ternary operator
Binary operator
Unary operator
Conditional Operator
if (num % 2 == 0)
System.out.println(num + “is even”);
else
System.out.println(num + “is odd”);
System.out.println(
(num % 2 == 0)? num + “is even” :
num + “is odd”);
Conditional Operator, cont.
(booleanExp) ? exp1 : exp2
Repetitions
while Loops
do-while Loops
for Loops
break and continue
while Loop Flow Chart
while (continuation-condition) {
// loop-body;
}
while Loop Flow Chart, cont.
i = 0;
int i = 0;
while (i < 100) { false
(i < 100)
System.out.println(
"Welcome to Java!");
i++;
true
}
System.out.println("Welcoem to Java!");
i++;
Next
Statement
Example 3.2: Using while Loops
TestWhile.java
TestWhile Run
Caution
Don’t use floating-point values for equality
checking in a loop control. Since floating-
point values are approximations, using them
could result in imprecise counter values and
inaccurate results. This example uses int
value for data. If a floating-point type value
is used for data, (data != 0) may be true even
though data is 0.
if (data == 0)
System.out.println("data is zero");
else
System.out.println("data is not zero");
do-while Loop
Statement(s)
do {
// Loop body;
true
} while (continue-condition); Continue
condition?
false
Next
Statement
for Loops
for (initial-action; loop-continuation-condition;
action-after-each-iteration) {
//loop body;
}
int i = 0;
while (i < 100) {
System.out.println("Welcome to Java! ” + i);
i++;
}
Example:
int i;
for (i = 0; i < 100; i++) {
System.out.println("Welcome to Java! ” + i);
}
for Loop Flow Chart
for (initial-action;
loop-continuation-condition;
action-after-each-iteration) {
//loop body;
}
for Loop Example
int i;
i=0
for (i = 0; i<100; i++) {
System.out.println(
"Welcome to Java"); false
i++ i<100?
}
true
System.out.println(
“Welcom to Java!”);
Next
Statement
for Loop Examples
Examples for using the for loop:
Example 3.3: Using for Loops
TestSum Run
TestMulTable Run
Which Loop to Use?
The three forms of loop statements, while, do, and for, are
expressively equivalent; that is, you can write a loop in
any of these three forms.
I recommend that you use the one that is most intuitive
and comfortable for you. In general, a for loop may be
used if the number of repetitions is known, as, for
example, when you need to print a message 100 times. A
while loop may be used if the number of repetitions is not
known, as in the case of reading the numbers until the
input is 0. A do-while loop can be used to replace a while
loop if the loop body has to be executed before testing the
continuation condition.
Caution
Adding a semicolon at the end of the
for clause before the loop body is a
common mistake, as shown below:
Wrong
for (int i=0; i<10; i++);
{
System.out.println("i is " + i);
}
Caution, cont.
Similarly, the following loop is also
wrong:
int i=0; Wrong
while (i<10);
{
System.out.println("i is " + i);
i++;
}
In the case of the do loop, the
following semicolon is needed to end
the loop.
int i=0;
do {
Correct
System.out.println("i is " + i);
i++;
} while (i<10);
The break Keyword
The continue Keyword
Using break and continue
Examples for using the break and continue
keywords:
TestBreak Run
TestContinue Run
Example 3.7
Finding the Sales Amount
You have just started a sales job in a
department store. Your pay consists of a base
salary and a commission. The base salary is
$5,000. The scheme shown below is used to
determine the commission rate.
Sales Amount Commission Rate
$0.01–$5,000 8 percent
$5,000.01–$10,000 10 percent
$10,000.01 and above 12 percent
Your goal is to earn $30,000 in a year. Write a
program that will find out the minimum amount
FindSalesAmount
of sales you have to generate in order Run
to make
$30,000.
Example 3.8
Displaying a Pyramid of Numbers
In this example, you will use nested loops to
print the following output:
1
212
32123
4321234
543212345
Your program prints five lines. Each line
consists of three parts. The first part
comprises the spaces before the numbers; the
second part, the leading numbers, such as 3 2 1
PrintPyramid
on line 3; and the last Run
part, the ending
numbers, such as 2 3 on line 3.
Example 3.9
Displaying Prime Numbers
This example displays the first 50 prime
numbers in five lines, each of which contains
10 numbers. An integer greater than 1 is prime
if its only positive divisor is 1 or itself.
For example, 2, 3, 5, and 7 are prime numbers,
but 4, 6, 8, and 9 are not.
The problem can be broken into the following
tasks:
•For number = 2, 3, 4, 5, 6, ..., test whether
the number is prime.
•Determine whether a given number is prime.
•Count the prime numbers.
PrimeNumber Run
•Print each prime number, and print 10 numbers
per line.