- The most basic control flow statement supported by the Java programming language is the if-then statement.
- The switch statement allows for any number of possible execution paths.
- The do-while statement is similar to the
while
statement, but evaluates its expression at the bottom of the loop.- Question: How do you write an infinite loop using the
for
statement?Answer:
for ( ; ; ) { }- Question: How do you write an infinite loop using the
while
statement?Answer:
while (true) { }
- Consider the following code snippet.
if (aNumber >= 0) if (aNumber == 0) System.out.println("first string"); else System.out.println("second string"); System.out.println("third string");
- Exercise: What output do you think the code will produce if
aNumber
is 3?Solution:
second string third string- Exercise: Write a test program containing the previous code snippet; make
aNumber
3. What is the output of the program? Is it what you predicted? Explain why the output is what it is. In other words, what is the control flow for the code snippet?Solution:
NestedIf
3 is greater than or equal to 0, so execution progresses to the secondsecond string third stringif
statement. The secondif
statement's test fails because 3 is not equal to 0. Thus, theelse
clause executes (since it's attached to the secondif
statement). Thus,second string
is displayed. The finalprintln
is completely outside of anyif
statement, so it always gets executed, and thusthird string
is always displayed.
- Exercise: Using only spaces and line breaks, reformat the code snippet to make the control flow easier to understand.
Solution:
if (aNumber >= 0) if (aNumber == 0) System.out.println("first string"); else System.out.println("second string"); System.out.println("third string");- Exercise: Use braces
{
and}
to further clarify the code and reduce the possibility of errors by future maintainers of the code.Solution:
if (aNumber >= 0) { if (aNumber == 0) { System.out.println("first string"); } else { System.out.println("second string"); } } System.out.println("third string");