Conditions
Conditions are used in code to determine whether a specific block of code should execute or be skipped.
if statement
if (condition) {...}
if statement takes a boolean value as condition. If the value is true java executes the code between the block {...}. Otherwise skip it. For example,
public class Conditions {
public static void main(String[] args) {
if (true) {
System.out.println("Inside if statement.");
}
System.out.println("Outside if statement.");
}
}
Output
Inside if statement.
Outside if statement.
However, if the condition is false, the line between the blocks will be skipped.
if (false) {
System.out.println("Inside if statement.");
}
System.out.println("Outside if statement.");
Output
Outside if statement.
Now here I hardcoded the true / false conditions. We can also use relational and logical operators as conditions. For example, I want to print
if a student gets above 89, the GPA will be 4.00
if a student gets between 85 to 89, the GPA will be 3.70
The statement will be like this,
public class Conditions {
public static void main(String[] args) {
int number = 92;
// Use of Relational Operator
if (number > 89) {
System.out.println("GPA: 4.00");
}
// Use of Logical Operator
if (number >= 85 && number <= 89) {
System.out.println("GPA: 3.70");
}
}
}
Output
GPA: 4.00
else if statement
else if (condition) {...}
Suppose I want to print the grades like this,
int number = 92;
if (number > 89) {
System.out.println("GPA: 4.00");
}
if (number > 84) {
System.out.println("GPA: 3.70");
}
Now there's a bug. Here the problem is that, the code is checking both of the conditions and both of them are true. So the output will execute both the blocks of codes.
Output
GPA: 4.00
GPA: 3.70
But we don't want that as nobody gets two grades. Instead what we can do is we can use else if condition. When the code sees an if statement it checks whether the condition is true or false. If the condition is false only then the code will check the else if condition. If the if condition is true, then all the other else if conditions will be skipped.
int number = 92;
if (number > 89) {
System.out.println("GPA: 4.00");
} else if (number > 84) {
System.out.println("GPA: 3.70");
}
Output
GPA: 4.00
We can use as many else if statements as we want according to our needs.
else statement
else {...}
The else statement will execute the block of code only when all the above if and else if conditions are false. else statement does not have a condition block.
int number = 80;
if (number > 89) {
System.out.println("GPA: 4.00");
} else if (number > 84) {
System.out.println("GPA: 3.70");
} else {
System.out.println("You need to work hard");
}
Output
You need to work hard
First comes the if statement, then the else if statements if needed and then lastly else statement if needed.
Nested Conditions
You can write nested conditions as well. Suppose I want to figure out if I got A+ or A after getting CGPA 4.00.
int number = 98;
if (number > 89) {
System.out.print("GPA: 4.00 ");
//Nested Conditions inside the if block
if (number > 96) {
System.out.println("Grade: A+");
} else {
System.out.println("Grade: A");
}
}
Output
CGPA: 4.00 Grade: A+
We can write as many nested conditions as needed. Try to figure out if it's possible to write nested conditions inside else if and else statements as well.
switch statement
Java switch statement is similar to if...else statements. We can write switch statement in the following way,
switch (expression) {
case value1:
// code
break;
case value2:
//code
break;
...
...
default:
//code
}
if...else statement checks whether the condition is true or false in the condition block. However, switch statement tries to match the expression from the (expression) block with the values from the case statements. If the value matches, the code of that case will be executed. And if none of the value matches the expression, then the code will execute the default value at the end. For example,
public class Conditions {
public static void main(String[] args) {
int number = 8;
switch (number) {
case 7:
System.out.println("Extra small");
break;
case 8:
System.out.println("Small");
break;
case 10:
System.out.println("Large");
break;
case 11:
System.out.println("Extra large");
break;
default:
System.out.println("Medium");
}
}
}
Output
Small
Here the term break breaks the switch statement. Which means if the expression matches a case, then it will execute the code of that particular case and skip the rest of the cases. If I don't use the term break after every case, then the rest of the code will execute from the matching state. For example,
public class Conditions {
public static void main(String[] args) {
int number = 10;
switch (number) {
case 7:
System.out.println("Extra small");
case 8:
System.out.println("Small");
case 10:
System.out.println("Large");
case 11:
System.out.println("Extra large");
default:
System.out.println("Medium");
}
}
}
Output
Large
Extra large
medium
Appendix
- When there's an error or our desired output does not match the generated output because of some particular code, it's code bug. We can trace our code from beginning to find where the problem occurs and debug our code.
- The white space between the curly braces is called code block.
{...}. We use code block after classes, methods, statements, loops etc to execute code for that particular term.
Happy Coding
Top comments (0)