<< Chapter < Page | Chapter >> Page > |
Concept A conditional expression is a shorthand for an if-statement that assigns different values to one variable:
if (expression) var = value1; else var = value2;
This can be rewritten more concisely as:
var = (expression) ? value1 : value2;
The boolean-valued expression is evaluated:
If the result is true,
value1
is assigned to
var
; if not,
value2
is assign to
var
.
Program: Control02.java
// Learning Object Control02
// conditional expressionspublic class Control02 {
public static void main(/*String[] args*/) {
int year = 2001; int month = 2;
int days; if (month == 2)
days = (year % 4 == 0) ? 28 : 29; else if (month == 4 || month == 6 ||
month == 9 || month == 11) days = 30;
else days = 31;
System.out.println(days); }
}
The program computes the number of days in a month taking leap years into account.
year
and
month
, are
given initial values.month == 2
evaluates to true, so the statement
following the expression is executed. Jeliot will display
Choosing then-branch
to
emphasize this.Choosing else-branch
.days
is printed.Exercise Complete the program with the correct computation for leap years: a year divisible by 100 is not a leap year unless itis divisible by 400.
Exercise Rewrite the entire if-statement as nested conditional expressions.
Concept A loop enables the execution of a statement (including a block of statements within braces) an arbitrary number of times.This statement is called the loop body . In a while loop, an expression is evaluated before each execution of the loop body,and loop body is executed if and only if the expression evaluates to true.
Program: Control03.java
// Learning Object Control03
// while loopspublic class Control03 {
static int LIMIT = 100; public static void main(/*String[] args*/) { int factorial = 1;
int n = 1; while (factorial < LIMIT) {
System.out.println(factorial); n++;
factorial = factorial * n; }
}}
This program prints all factorials less than
LIMIT = 100
, namely,
,
,
,
.
while
is reached, the expression
is evaluated. If it is true, execution proceeds with the loop body, andJeliot displays
Entering the while loop
the first time
and
Continuing the while loop
on subsequent occasions.Exiting the while loop
.Notification Switch
Would you like to follow the 'Learning objects for java (with jeliot)' conversation and receive update notifications?