<< Chapter < Page Chapter >> Page >

Conditional expressions

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.

  • The variables are allocated and the first two, year and month , are given initial values.
  • The expression month == 2 evaluates to true, so the statement following the expression is executed. Jeliot will display Choosing then-branch to emphasize this.
  • The inner statement is an assignment statement with a conditional expression. The expression is evaluatedand its result is false, so the value after the colon is assigned to the variable. Jeliot will display Choosing else-branch .
  • The value of 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.

While loops

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, 1 ! = 1 , 2 ! = 2 , 3 ! = 6 , 4 ! = 24 .

  • The static constant and the two variables are allocated and initialized.
  • Then, and each time the keyword 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.
  • The statements of the loop body are executed. They print the value of the current factorial, increment the counterand compute the new factorial; then, control returns to the while-expression.
  • If and when the expression evaluates to false, execution proceeds with the statement following the loop body.Jeliot displays Exiting the while loop .

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, Learning objects for java (with jeliot). OpenStax CNX. Dec 28, 2009 Download for free at http://cnx.org/content/col10915/1.2
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Learning objects for java (with jeliot)' conversation and receive update notifications?

Ask