Make a Decision: If-Statement
Patrick 🐥 is a very polite duck who likes to greet everyone he meets with “Good Morning,” “Good Afternoon,” or “Good Night” depending on the current time.

(image by National Geographic: giphy.com/natgeochannel)
As we learned before, we can print these statements as below:
System.out.println("Good Morning"); // say it between 0:00 - 11:59
System.out.println("Good Afternoon"); // say it between 12:00 - 19:59
System.out.println("Good Night"); // say it between 20:00 - 23:59
However, we also know Patrick 🐥 should only decide to say one of these statements based on the current time.
In other words, we need to write code that makes a decision on what to print based on the conditions of the situation (conditionally).
In Java, we make a decision by using an if statement or an if…else statement. Read the notes below:
If Statement
if(boolean expression){
Action(s) to Take
}
An if statement follows the structure shown above. The actions to take (statements) in the block will only be executed if the boolean expression is true. Otherwise, the program will skip to the statement after the block if the Boolean expression is false.
If-Else Statement
if(boolean expression){
Action(s) to Take A
}else{
Action(s) to Take B
}
An if-else statement follows the structure shown above. If the boolean expression is true, the program will execute the Action(s) to Take A within the if block. Otherwise, the program executes only Action(s) to Take B within the else-block.
Example
boolean likeMusic = true;
if(likeMusic == true) {
System.out.println("I like Music");
} else {
System.out.println("I don't like Music");
}
The code above will print the statement I like Music because the boolean expression, likeMusic == true, is true.
Let’s revisit the greating example above, and make decision for Patrick on whether to say “Good Morning,” “Good Afternoon,” “Good Night”.
Patrick should say “Good Morning” between 0:00 - 11:59, “Good Afternoon” between 12:00 - 19:59, and “Good Night” between 20:00 - 23:59.
- We have a variable
currentHourthat stores the current hour. - Fill out the correct
boolean expression Aandboolean expression Bto complete the program. - Test your result by assigning the variable
currentHourto numbers from 0 to 23:
Repeat It Again: For-Loop, While-Loop
In math class, Patrick’s 🐥 teacher ask the class to solve a math challenge, and he might need some help.
The teacher asks them to find the sum of 1, 2, 3, …., 100. That is what is 1 + 2 + 3 + 4 … + 99 + 100?
While we can plug this into a calculator, that is gonna take a while. Thankfully, in Java, you can easily calculate this in 3 lines with the help of a for loop or while loop.
For loops and While loops are control structures in Java that allow you to execute blocks of code multiples times.
While Loop
while(boolean expression){
Action(s) to Take
}
Action(s) to Take in the while block will be executed as long as the boolean expression is true.
The following is an example that prints out 1 through 10:
int number = 1;
while(number <= 10){
System.out.println(number);
number = number + 1; // number is incremented by 1
}
In the while loop above, the program will print out the value of number and increment number. This step will be performed as long as number <= 10, and in this case the loop terminates when number is 11.
Note: For while loops, you must remember to increment the conditional variable, otherwise you will introduce an infinite loop into your program.
For Loop
for(initialization; termination condition; update statement){
Action(s) to Take
}
In a for loop, there are three parts the in condition block: initialization, termination condition, and update statement.
- When executing a for loop, the program will execute the
initializationpart. An example is,int number = 1. - Next, the program checks for
termination condition. An example isnumber <= 10. - If it is
true:- execute the
Action(s) to Take - execute the
update statement(an example isnumber = number + 1)
- execute the
- Repeat step 2 and 3.
- If the
termination conditionisfalse, exit theforloop.
The following is an example that prints out 1 through 10:
for(int number = 1; number <= 10; number = number + 1){
System.out.println(number);
}
After learning about for loop and while loop, let’s see how do we help Patrick 🐥 and calculate 1 + 2 + 3 + 4 … + 99 + 100 easily?
Let’s try to do it in a while loop:
- We have a variable called
totalthat tracks the total addition sum we get so far. - We have a variable called
numthat tracks the next number to be added tototal. - Write out the appropriate
boolean expressionand write out the while loop.
By following those step we will get a while loop like this:
int total = 0;
int num = 1;
while(num <= 100){
total = total + num;
num = num + 1;
}
System.out.println("Answer calculated in a while loop: " + total);
Test this out below by clicking Run and write a for loop version that calculates the same thing! You should get the same answer!