Start of Tutorial > Start of Trail > Start of Lesson |
Search
Feedback Form |
The if statement enables your program to selectively execute other statements, based on some criteria. For example, suppose that your program prints debugging information, based on the value of a boolean variable namedDEBUG
. IfDEBUG
istrue
, the program prints debugging information, such as the value of a variable, sayx
. Otherwise, your program proceeds normally. A segment of code to implement this might look like this.This is the simplest version of theif (DEBUG) { System.out.println("DEBUG: x = " + x); }if
statement: The block governed byif
is executed if a condition istrue
. Generally, the simple form ofif
can be written as follows.What if you want to perform a different set of statements if the expression isif (expression) { statement(s) }false
? You can use the else statement for that. Consider another example: Suppose your program needs to perform different actions depending on whether the user clicks the OK button or another button in an alert window. The program could do this by using anif
statement along with anelse
statement.The. . . //Response is either OK or CANCEL, depending //on the button that the user pressed. . . . if (response == OK) { //code to perform OK action } else { //code to perform Cancel action }else
block is executed if theif
part isfalse
. Another form of theelse
statement,else if
, executes a statement based on another expression. Anif
statement can have any number of companionelse if
statements but only oneelse
. The following program,IfElseDemo
, assigns a grade based on the value of a test score: an A for a score of 90% or above, a B for a score of 80% or above, and so on.This is the output from the program.public class IfElseDemo { public static void main(String[] args) { int testscore = 76; char grade; if (testscore >= 90) { grade = 'A'; } else if (testscore >= 80) { grade = 'B'; } else if (testscore >= 70) { grade = 'C'; } else if (testscore >= 60) { grade = 'D'; } else { grade = 'F'; } System.out.println("Grade = " + grade); } }You may have noticed that the value ofGrade = Ctestscore
can satisfy more than one of the expressions in the compoundif
statement:76 >= 70
and76 >= 60
. However, as the runtime system processes a compoundif
statement like this one, once a condition is satisfied, the appropriate statements are executed (grade = 'C';
) and control passes out of theif
statement without evaluating the remaining conditions.The Java programming language supports an operator
?:
that is a compact version of anif
statement. Recall the following statement from theMaxVariablesDemo
program.Here's how you could rewrite that statement using theif (Character.isUpperCase(aChar)) { System.out.println("The character " + aChar + " is uppercase."); } else { System.out.println("The character " + aChar + " is lowercase."); }?:
operator (shown in boldface).TheSystem.out.println("The character " + aChar + " is " + (Character.isUpperCase(aChar) ? "upper" : "lower") + "case.");?:
operator returns the string"upper"
if theisUpperCase
method returnstrue
; otherwise, it returns the string"lower"
. The result is concatenated with other parts of a message to be displayed. Using?:
makes sense here because theif
statement is secondary to the call to theprintln
method. Once you get used to this construct, it also makes the code easier to read.
Start of Tutorial > Start of Trail > Start of Lesson |
Search
Feedback Form |
Copyright 1995-2005 Sun Microsystems, Inc. All rights reserved.