|
|
Start of Tutorial > Start of Trail > Start of Lesson |
Search
Feedback Form |
The ifstatement 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 named
DEBUG. IfDEBUGistrue, your program prints debugging information, such as the value of a variable, such asx. 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); }ifstatement: The block governed by theifis executed if a condition is true. Generally, the simple form ofifcan be written like this:What if you want to perform a different set of statements if the expression is false? You use the elseif (expression) { statement(s) }statement for that. Consider another example. Suppose that your program needs to perform different actions depending on whether the user clicks the OK button or another button in an alert window. Your program could do this by using an
ifstatement along with anelsestatement: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 }elseblock is executed if theifpart is false. Another form of theelsestatement,else if, executes a statement based on another expression. An if statement can have any number of companionelse ifstatements but only oneelse. Following is a program,IfElseDemo, that 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:
The output from this program is: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 = Ctestscorecan satisfy more than one of the expressions in the compoundifstatement: 76 >= 70 and 76 >= 60. However, as the runtime system processes a compoundifstatement such as this one, once a condition is satisfied, the appropriate statements are executed (grade = 'C';), and control passes out of theifstatement without evaluating the remaining conditions.The Java programming language supports an operator,
?:, that is a compact version of anifstatement. Recall this statement from theMaxVariablesDemoprogram:
Here's how you could rewrite that statement using theif (Character.isUpperCase(aChar)) { System.out.println("The character " + aChar + " is upper case."); } else { System.out.println("The character " + aChar + " is lower case."); }?:operator:TheSystem.out.println("The character " + aChar + " is " + (Character.isUpperCase(aChar) ? "upper" : "lower") + "case.");?:operator returns the string"upper"if theisUpperCasemethod returns true. Otherwise, it returns the string"lower". The result is concatenated with other parts of a message to be displayed. Using?:makes sense here because theifstatement is secondary to the call to theprintlnmethod. 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-2004 Sun Microsystems, Inc. All rights reserved.