If-Else Statements: Making Decisions in Java
Control flow áá˛áˇ áĄááźáąááś - conditions áá˝áąáĄááąáŤáş áá°áááşááźáŽá¸ code á áááşááᯠrun ááᲠááŻáśá¸ááźááşáááşá¸ááᯠááąáˇááŹááźáááşá
đŻ áááş áááşáá°áááˇáş áĄááŹááťáŹá¸
áᎠlesson áážáŹ áááş áááşáá°áááˇáş áĄááŹááťáŹá¸:
- If statement áá˛áˇ syntax áá˛áˇ áĄááŻááşááŻááşááŻáś
- If-else áá˛áˇ if-else-if áĄááŻáśá¸ááźáŻáááşá¸
- Nested if statements (if áá˛áážáŹ if)
- Comparison operators (==, !=, >, <,>=, <=)< /li>
- Logical operators (&&, ||, !) áá˛áˇ ááąáŤááşá¸á ááşáĄááŻáśá¸ááźáŻááźááşá¸
- Real-world examples ááťáŹá¸
đ If Statements áááŻáᏠááŹáá˛?
If statement áááŻáᏠprogram áážáŹ decision making ááŻááşáááŻáˇ áĄááŻáśá¸ááźáŻáá˛áˇ control flow statement áá áşááŻááŤá áááˇáş program á conditions áá˝áąáĄááąáŤáş áá°áááşááźáŽá¸ ááá°ááŽáá˛áˇ code blocks áá˝áąááᯠexecute ááŻááşáááŻááşááŤáááşá
ááąáˇá ááşáááážáŹ áĽáááŹ:
- áĄáááşá áááŻá¸áá˝áŹááąáááş â ááŽá¸áááŻááşááŤ
- áĄáááşá áĄáá°ááťáááş > 30°C ááźá áşáááş â AC áá˝ááˇáşááŤ
- áĄáááşá score >= 50 ááźá áşáááş â Pass, áááŻááşáááş â Fail
Programming áážáŹáááşá¸ áĄáá°áá°ááŤáá˛!
đš Simple If Statement
áĄáááŻá¸áážááşá¸ááŻáśá¸ if statement áá˛áˇ syntax:
if (condition) {
// condition á true ááźá
áşáááş áᎠcode block run áááş
statement;
}
Example: áĄáááş á á áşááąá¸ááźááşá¸
public class AgeCheck {
public static void main(String[] args) {
int age = 20;
if (age >= 18) {
System.out.println("You are an adult!");
}
System.out.println("Program finished.");
}
}
You are an adult! Program finished.
áážááşá¸áááşá¸ááťááş:
- age >= 18 á true ááźá áşáááŻáˇ if block áá˛á code run áááş
- System.out.println("Program finished.") á if block áĄááźááşáážáŹ áážááááŻáˇ áĄááźá˛ run áááş
đš If-Else Statement
Condition á true áááŻááşáááş áááźáŹá¸ code block áá áşáᯠrun ááťááşáááş else ááŻáśá¸ááŤ:
if (condition) {
// condition á true ááźá
áşáááş run áááş
} else {
// condition á false ááźá
áşáááş run áááş
}
Example: Pass/Fail á á áşááąá¸ááźááşá¸
public class ExamResult {
public static void main(String[] args) {
int score = 45;
if (score >= 50) {
System.out.println("Congratulations! You passed!");
System.out.println("Your score: " + score);
} else {
System.out.println("Sorry, you failed.");
System.out.println("Your score: " + score);
System.out.println("Try again!");
}
}
}
Sorry, you failed. Your score: 45 Try again!
đš If-Else-If Ladder
Conditions áĄááťáŹá¸ááźáŽá¸ á á áşááąá¸ááťááşáááş else if ááŻáśá¸ááŤ:
if (condition1) {
// condition1 true ááźá
áşáááş
} else if (condition2) {
// condition2 true ááźá
áşáááş
} else if (condition3) {
// condition3 true ááźá
áşáááş
} else {
// áĄáŹá¸ááŻáśá¸ false ááźá
áşáááş
}
Example: Grade System
public class GradeSystem {
public static void main(String[] args) {
int marks = 75;
String grade;
if (marks >= 90) {
grade = "A - Excellent!";
} else if (marks >= 80) {
grade = "B - Very Good!";
} else if (marks >= 70) {
grade = "C - Good!";
} else if (marks >= 50) {
grade = "D - Pass";
} else {
grade = "F - Fail";
}
System.out.println("Your marks: " + marks);
System.out.println("Your grade: " + grade);
}
}
Your marks: 75 Your grade: C - Good!
áĄááąá¸ááźáŽá¸áá˛áˇ áĄááťááş:
- If-else-if ladder á áĄááąáŤáşáááą áĄáąáŹááşááᯠá á áşáááş
- ááá true condition áá˝áąáˇáááş ááťááşááŹáá˝áą áá á áşááąáŹáˇáá°á¸
- Condition order á áĄááąá¸ááźáŽá¸áááş (áĄááąáŤáşáážáŹ áááŻáááşá¸ááťááşáá˛áˇ condition ááŹá¸ááŤ)
đš Comparison Operators
Conditions á á áşááąá¸áááŻáˇ áĄááŻáśá¸ááźáŻáá˛áˇ operators:
| Operator | áááŻáááŻááťááş | Example | Result |
|---|---|---|---|
== |
áá°ááŽáááş | 5 == 5 | true |
!= |
ááá°ááŽáááş | 5 != 3 | true |
> |
áááŻááźáŽá¸áááş | 7 > 5 | true |
< |
áááŻááąá¸áááş | 3 < 5 | true |
>= |
áááŻááźáŽá¸áááş áááŻáˇáááŻááş áá°ááŽáááş | 5 >= 5 | true |
<= |
áááŻááąá¸áááş áááŻáˇáááŻááş áá°ááŽáááş | 3 <= 5 | true |
â ď¸ áááááźáŻáááş: Assignment operator = áá˛áˇ comparison operator
== ááᯠáááąáŹáážáąáŹááŤáá˛áˇ!
x = 5â value assign ááŻááşáááşx == 5â value á á áşááąá¸áááş (true/false)
đš Logical Operators
Multiple conditions áá˝áąááᯠááąáŤááşá¸á ááşáááŻáˇ:
| Operator | áááŻáááŻááťááş | Example | Description |
|---|---|---|---|
&& |
AND (áážá áşááŻááŻáśá¸) | x > 5 && x < 10 | áážá áşááŻááŻáśá¸ true ááźá áşááž true |
|| |
OR (áá áşááŻááŻ) | x < 5 || x> 10 | áá áşáᯠtrue ááźá áşáááş true |
! |
NOT (áááˇáşááťááşáááş) | !(x == 5) | true ááᯠfalse, false ááᯠtrue ááŻááşáááş |
Example: Age & License Check
public class DriverCheck {
public static void main(String[] args) {
int age = 22;
boolean hasLicense = true;
// AND operator - áážá
áşááŻááŻáśá¸ true ááźá
áşááááş
if (age >= 18 && hasLicense) {
System.out.println("You can drive!");
} else {
System.out.println("You cannot drive.");
if (age < 18) {
System.out.println("Reason: Too young");
}
if (!hasLicense) {
System.out.println("Reason: No license");
}
}
}
}
Example: Weekend or Holiday
public class DayOff {
public static void main(String[] args) {
String day = "Saturday";
boolean isHoliday = false;
// OR operator - áá
áşáᯠtrue ááźá
áşáááş enough
if (day.equals("Saturday") || day.equals("Sunday") || isHoliday) {
System.out.println("It's a day off! Enjoy!");
} else {
System.out.println("It's a working day.");
}
}
}
đš Nested If Statements
If statement áá áşááŻáá˛áážáŹ ááąáŹááşáááş if statement áááˇáşááźááşá¸:
public class TicketPrice {
public static void main(String[] args) {
int age = 25;
boolean isStudent = true;
int price;
if (age < 18) {
price = 500; // Child price
} else {
// Adult category
if (isStudent) {
price = 800; // Student discount
} else {
price = 1000; // Regular adult
}
}
System.out.println("Ticket price: " + price + " Kyats");
System.out.println("Age: " + age);
System.out.println("Student: " + isStudent);
}
}
Ticket price: 800 Kyats Age: 25 Student: true
Nested If ááᯠáááşáĄááťáááşááŻáśá¸áááá˛:
- Multiple levels of conditions á á áşááá˛áˇáĄááŤ
- Inner condition á outer condition áĄááąáŤáş áá°áááşáá˛áˇáĄááŤ
- ááŤááąáááˇáş nested if ááťáŹá¸áá˝ááşá¸áááş code áážáŻááşáá˝áŹá¸áááŻááşáááş
- áá˝ááşáá˝ááşáá˛áˇ ááąá¸áááŻááşáááş if-else-if ááŻáśá¸áᏠáááŻááąáŹááşá¸áááş
đť Complete Example: Bank Account System
áĄáŹá¸ááŻáśá¸ááᯠááąáŤááşá¸á ááşáĄááŻáśá¸ááźáŻáá˛áˇ practical example:
public class BankAccount {
public static void main(String[] args) {
double balance = 50000;
double withdrawAmount = 30000;
int accountAge = 6; // months
boolean isPremium = false;
System.out.println("=== Bank Withdrawal System ===");
System.out.println("Current Balance: " + balance + " Kyats");
System.out.println("Withdraw Amount: " + withdrawAmount + " Kyats");
System.out.println();
// Check if account is active (at least 3 months old)
if (accountAge < 3) {
System.out.println("Error: Account too new!");
System.out.println("Wait " + (3 - accountAge) + " more months.");
} else {
// Account is active, check withdrawal
if (withdrawAmount > balance) {
System.out.println("Error: Insufficient funds!");
System.out.println("Available: " + balance);
} else {
// Sufficient balance
double fee = 0;
// Calculate fee based on account type
if (isPremium) {
fee = 0; // No fee for premium
System.out.println("Premium Account: No fees!");
} else {
if (withdrawAmount > 100000) {
fee = withdrawAmount * 0.02; // 2% fee
} else {
fee = 1000; // Flat fee
}
System.out.println("Transaction fee: " + fee + " Kyats");
}
double total = withdrawAmount + fee;
if (total <= balance) {
balance = balance - total;
System.out.println("â Withdrawal successful!");
System.out.println("Amount withdrawn: " + withdrawAmount);
System.out.println("New balance: " + balance + " Kyats");
} else {
System.out.println("Error: Insufficient for amount + fee!");
System.out.println("Need: " + total);
System.out.println("Have: " + balance);
}
}
}
System.out.println("\n=== Transaction Complete ===");
}
}
=== Bank Withdrawal System === Current Balance: 50000.0 Kyats Withdraw Amount: 30000.0 Kyats Transaction fee: 1000.0 Kyats â Withdrawal successful! Amount withdrawn: 30000.0 New balance: 19000.0 Kyats === Transaction Complete ===
đŻ áĄááá áážááşááŹá¸ááááˇáş áĄááťááşááťáŹá¸
- If statement: Condition true ááźá áşááž code block execute ááŻááşáááş
- If-else: True/false áážá áşááťááŻá¸ áĄáá˝ááş ááá°ááŽáá˛áˇ code run áááş
- If-else-if: Multiple conditions á á áşááąá¸áááŻááşáááş (ááá true áá˝áąáˇáááş áááşáááş)
- Comparison operators: ==, !=, >, <,>=, <= (values ááᯠáážááŻááşá¸áážááşáááş)
- Logical operators: && (AND), || (OR), ! (NOT) (conditions ááąáŤááşá¸áááş)
- Nested if: If áá˛áážáŹ if - áážáŻááşáá˝áąá¸áá˛áˇ logic áĄáá˝ááş
- Code style: Curly braces {} áĄááźá˛ááŻáśá¸ááŤá indentation áážááşáĄáąáŹááşááŹá¸ááŤ
- áááááźáŻáááş: = (assign) áá˛áˇ == (compare) áááąáŹááŤáá˛áˇ!
âď¸ Practice Exercise
Exercise: Temperature Advisor
áĄáá°ááťáááşáĄááąáŤáş áá°áááşááźáŽá¸ áĄááźáśááźáŻááťááş ááąá¸áá˛áˇ program ááąá¸ááŤ:
- temp < 10: "It's freezing! Wear heavy coat."
- temp 10-20: "It's cold. Wear a jacket."
- temp 21-30: "Pleasant weather!"
- temp 31-40: "It's hot! Stay hydrated."
- temp > 40: "Extreme heat! Stay indoors."
Extra: If it's raining (boolean isRaining), add "Take an umbrella!"
đĄ Solution ááźááˇáşáááş (Try ááŻááşááźáŽá¸ááž ááźááˇáşááŤ)
public class TemperatureAdvisor {
public static void main(String[] args) {
int temp = 35;
boolean isRaining = true;
System.out.println("Current temperature: " + temp + "°C");
if (temp < 10) {
System.out.println("It's freezing! Wear heavy coat.");
} else if (temp <= 20) {
System.out.println("It's cold. Wear a jacket.");
} else if (temp <= 30) {
System.out.println("Pleasant weather!");
} else if (temp <= 40) {
System.out.println("It's hot! Stay hydrated.");
} else {
System.out.println("Extreme heat! Stay indoors.");
}
if (isRaining) {
System.out.println("Take an umbrella!");
}
}
}
đ Quick Quiz
Question 1: áᎠcode á áᏠoutput ááąá¸ááá˛?
int x = 10;
if (x > 5 && x < 15) {
System.out.println("A");
} else {
System.out.println("B");
}
Question 2: x = 5 áááŻáááş áááş output áá˝ááşááá˛?
if (x >= 10) {
System.out.println("Large");
} else if (x >= 5) {
System.out.println("Medium");
} else {
System.out.println("Small");
}
Question 3: áááş operator á "not equal to" ááᯠáááŻááşá áŹá¸ááźáŻáá˛?