Java Control Flow (if, else, switch) - තීරණ ගන්න | SC Guide

Java Control Flow (if, else, switch) - තීරණ ගන්න | SC Guide

Java Control Flow Statements: ඔබේ කෝඩ් එකට ජීවය දෙමු!

ආයුබෝවන් යාළුවනේ! ඉතින් කොහොමද වැඩ? ඔන්න අදත් මම ආවා ඔයාලට Software Engineering වල තවත් වැදගත් කාරණයක් ගැන කතා කරන්න. විශේෂයෙන්ම අපි Java ගැන කතා කරන නිසා, Java Programming වලදී අපේ කෝඩ් එකේ ගමන් මාර්ගය (flow) පාලනය කරන්නේ කොහොමද කියලා අද අපි හොඳටම ඉගෙන ගමු. මේක Programming වලදී අත්‍යවශ්‍ය දෙයක්, මොකද අපේ Program එක හැම වෙලේම එකම විදියට නෙවෙයි වැඩ කරන්නේ. සමහර වෙලාවට මේක කරන්න ඕනේ, අර වෙලාවට අරක කරන්න ඕනේ කියන තීරණ ගන්න වෙනවානේ නේද? අන්න ඒ වගේ අවස්ථාවලට තමයි මේ Control Flow Statements පාවිච්චි වෙන්නේ.

සරලවම කිව්වොත්, Control Flow Statements කියන්නේ අපේ Program එකට 'තීරණ' ගන්න උදව් කරන tools කිහිපයක්. මේවායින් ප්‍රධානම ඒවා තමයි if, else, else if, සහ switch Statements. අපි මේවා එකින් එක විස්තරාත්මකව බලමු, ඒ වගේම Practical Examples එක්ක. අන්තිමට ඔයාලටම මේවා ගහලා බලන්න පුළුවන් වෙන්න. එහෙනම් අපි පටන් ගමු!

1. if Statement: සරලම තීරණය

if Statement එක තමයි Control Flow Statements අතරින් සරලම එක. මේකෙන් වෙන්නේ යම්කිසි Condition එකක් True නම් (සත්‍ය නම්) විතරක්, අපි දීලා තියෙන Code Block එකක් Execute කරන එක. Condition එක False නම්, අර Code Block එක completely skip කරනවා, ඒක ක්‍රියාත්මක වෙන්නේම නැහැ.

අපි හිතමු අපිට ඕනේ student කෙනෙක්ගේ Marks 50 ට වඩා වැඩිනම් 'Passed' කියලා print කරන්න. අන්න එතනට if Statement එක නියමෙට ගැලපෙනවා.

Structure:


if (condition) {
    // Code to be executed if the condition is true
}

Example:


public class IfStatementExample {
    public static void main(String[] args) {
        int marks = 65;

        if (marks > 50) {
            System.out.println("Congratulations! You have Passed the exam.");
        }

        System.out.println("Program finished.");
    }
}

මේ Code එකේදී, marks 65 නිසා, marks > 50 කියන Condition එක True වෙනවා. ඒ නිසා 'Congratulations! You have Passed the exam.' කියලා Output එකට එනවා. ඊට පස්සේ 'Program finished.' කියන එකත් print වෙනවා. හැබැයි marks 40 වගේ අගයක් දුන්නා නම්, 'Congratulations!' කියන එක print වෙන්නේ නැහැ, කෙලින්ම 'Program finished.' කියලා print වෙලා Program එක ඉවර වෙනවා. තේරුණා නේද? මේක තමයි if Statement එකේ සිම්පල් වැඩේ.

2. if-else Statement: විකල්ප දෙකක් අතර තීරණය

අපිට සමහර වෙලාවට ඕනේ වෙනවා, Condition එක True නම් එක දෙයක් කරන්න, False නම් තවත් වෙන දෙයක් කරන්න. අන්න ඒ වගේ වෙලාවට if-else Statement එක පාවිච්චි කරනවා. මේක if එකේම දිගුවක් වගේ.

Structure:


if (condition) {
    // Code to be executed if the condition is true
} else {
    // Code to be executed if the condition is false
}

Example:


public class IfElseStatementExample {
    public static void main(String[] args) {
        int age = 17;

        if (age >= 18) {
            System.out.println("You are eligible to vote.");
        } else {
            System.out.println("You are not yet eligible to vote.");
        }

        System.out.println("Age check completed.");
    }
}

මේ Code එකේදී, age 17 නිසා, age >= 18 කියන Condition එක False වෙනවා. ඒ නිසා else Block එක ඇතුළේ තියෙන 'You are not yet eligible to vote.' කියන Message එක print වෙනවා. හැබැයි age 20 වගේ දුන්නා නම්, 'You are eligible to vote.' කියන එක print වෙනවා. if-else කියන්නේ තනිකරම 'හෝ' (OR) තත්ත්වයක් වගේ. එකක් නැත්නම් අනිත් එක අනිවාර්යයෙන්ම ක්‍රියාත්මක වෙනවා.

3. if-else if-else Ladder: බහු තේරීම් සඳහා

අපිට සමහර වෙලාවට දෙකකට වඩා වැඩි තේරීම් ප්‍රමාණයක් අතරින් එකක් තෝරාගන්න සිද්ධ වෙනවා. උදාහරණයක් විදියට, ළමයෙකුට Marks අනුව Grade එකක් දෙන්න ඕනේ කියලා හිතමු. Marks 75ට වැඩිනම් A, 65ට වැඩිනම් B, 55ට වැඩිනම් C, එහෙම නැත්නම් F වගේ. අන්න එතනට තමයි if-else if-else Ladder එක පාවිච්චි කරන්නේ.

මේකේදී, if Condition එක True වුණේ නැත්නම්, ඊළඟ else if Condition එක Check කරනවා. ඒකත් True වුණේ නැත්නම් ඊළඟ එක, ඔහොම ඔහොම ගිහින් අන්තිම else එකට එනවා. එක Condition එකක් True වුණාම, අදාළ Code Block එක Execute වෙලා, මුළු Ladder එකෙන්ම එළියට යනවා. ආයේ ඊට පහළ තියෙන කිසිම Condition එකක් Check කරන්නේ නැහැ.

Structure:


if (condition1) {
    // Code if condition1 is true
} else if (condition2) {
    // Code if condition1 is false and condition2 is true
} else if (condition3) {
    // Code if condition1 and condition2 are false and condition3 is true
} else {
    // Code if all conditions are false
}

Example:


public class IfElseIfLadderExample {
    public static void main(String[] args) {
        int score = 78;
        char grade;

        if (score >= 90) {
            grade = 'A';
            System.out.println("Excellent! Grade: " + grade);
        } else if (score >= 80) {
            grade = 'B';
            System.out.println("Very Good! Grade: " + grade);
        } else if (score >= 70) {
            grade = 'C';
            System.out.println("Good! Grade: " + grade);
        } else if (score >= 60) {
            grade = 'D';
            System.out.println("Pass! Grade: " + grade);
        } else {
            grade = 'F';
            System.out.println("Fail! Grade: " + grade + ". Please try again.");
        }

        System.out.println("Grading completed.");
    }
}

මේ Code එකේදී, score 78 නිසා, මුලින්ම score >= 90 False වෙනවා. ඊළඟට score >= 80 ඒකත් False වෙනවා. ඊළඟට score >= 70 True වෙනවා. ඒ නිසා 'Good! Grade: C' කියලා print වෙලා, ඉතිරි Conditions Check නොකරම Program එක ඉදිරියට යනවා. මේක බහු-තේරීම් සඳහා ඉතාම ප්‍රයෝජනවත් ක්‍රමයක්.

4. switch Statement: නිශ්චිත අගයන් මත පදනම්ව තීරණය

switch Statement එකත් බහු තේරීම් සඳහාම පාවිච්චි කරන එකක්. හැබැයි if-else if Ladder එකට වඩා පොඩි වෙනසක් තියෙනවා. switch එක පාවිච්චි කරන්නේ නිශ්චිත අගයන් (Fixed Values) ගණනාවක් මත පදනම්ව තීරණ ගන්න. උදාහරණයක් විදියට, සතියේ දවස් (1, 2, 3...) අනුව ඒ දවසට අදාල නම (Monday, Tuesday...) print කරනවා වගේ වැඩකට switch එක නියමෙට ගැලපෙනවා. if-else if වලට වඩා සමහර අවස්ථාවලදී Code එක කියවන්න පහසුයි, ලස්සනයි.

switch Statement එකේදී Expression එකක අගය, case ලේබලයක අගය එක්ක ගලපලා බලනවා. ගැලපෙන case එකට අදාල Code Block එක ක්‍රියාත්මක වෙනවා. break Statement එක පාවිච්චි කරන්නේ ගැලපෙන case එක ක්‍රියාත්මක වුණාට පස්සේ switch Block එකෙන් එළියට යන්න. break නැත්නම්, ඊළඟ case එකත් ක්‍රියාත්මක වෙන්න පුළුවන් (මේකට කියන්නේ fall-through කියලා). default කියන්නේ කිසිම case එකක් ගැලපුණේ නැත්නම් ක්‍රියාත්මක වෙන Code Block එක.

Structure:


switch (expression) {
    case value1:
        // Code to be executed if expression == value1
        break;
    case value2:
        // Code to be executed if expression == value2
        break;
    // ... more cases
    default:
        // Code to be executed if no case matches
        break;
}

Example:


public class SwitchStatementExample {
    public static void main(String[] args) {
        int dayOfWeek = 3; // 1 for Monday, 2 for Tuesday, etc.
        String dayName;

        switch (dayOfWeek) {
            case 1:
                dayName = "Monday";
                break;
            case 2:
                dayName = "Tuesday";
                break;
            case 3:
                dayName = "Wednesday";
                break;
            case 4:
                dayName = "Thursday";
                break;
            case 5:
                dayName = "Friday";
                break;
            case 6:
                dayName = "Saturday";
                break;
            case 7:
                dayName = "Sunday";
                break;
            default:
                dayName = "Invalid day";
                break;
        }

        System.out.println("Today is: " + dayName);
    }
}

මේ Code එකේදී, dayOfWeek 3 නිසා, case 3 එකට අදාළ Code Block එක ක්‍රියාත්මක වෙනවා. 'Today is: Wednesday' කියලා Output එකට එනවා. break Statement එක නිසා, ඊට පහළ තියෙන case Check කරන්නේ නැහැ, කෙලින්ම switch එකෙන් එළියට එනවා. dayOfWeek එක 10 වගේ දුන්නා නම්, කිසිම case එකක් ගැලපෙන්නේ නැති නිසා, default Block එක ක්‍රියාත්මක වෙලා 'Today is: Invalid day' කියලා print වෙනවා. switch Statement එකේදී String, enum, byte, short, int, Character වගේ data types පාවිච්චි කරන්න පුළුවන්.

අවසාන වචන: ඔබේ කෝඩ් එකට බුද්ධියක් දෙමු!

ඉතින් යාළුවනේ, මේ if, else, else if, සහ switch Statements කියන්නේ Programming වලදී අත්‍යවශ්‍යම දේවල් කියලා දැන් ඔයාලට තේරෙනවා ඇති. මේවා තමයි අපේ Programs වලට 'තීරණ' ගන්න, Smart විදියට වැඩ කරන්න උදව් කරන්නේ. Real-world applications වලදී මේවා නැතුව Programming කරන්න බෑ කියන එක තමයි ඇත්ත. මොකද හැම Software එකකම විවිධ තත්ත්වයන්ට අනුව වෙනස් විදියට ප්‍රතිචාර දක්වන්න වෙනවානේ.

ඔයාලට තේරෙන්න ඇති මේක පොඩි දෙයක් වගේ පෙනුනත්, මේවා ප්‍රගුණ කිරීමෙන් තමයි ඔබට හොඳ Programmer කෙනෙක් වෙන්න පුළුවන් වෙන්නේ. හැමදේම වගේ, මේකත් පුරුදු වීමෙන් තමයි හොඳටම ඉගෙන ගන්න පුළුවන්. ඒ නිසා, අදම ඔයාලගේ IDE එක (IntelliJ IDEA, Eclipse, VS Code වගේ එකක්) ඕපන් කරලා, මේ Examples ටික Try කරලා බලන්න. ඊට පස්සේ ඔයාලටම Solutions හදන්න Try කරන්න. උදාහරණයක් විදියට, Numbers දෙකක් දීලා, ඒ දෙකෙන් ලොකු Number එක මොකක්ද කියලා හොයන්න if-else පාවිච්චි කරන්න පුළුවන්. නැත්නම් Calendar එකක Month Number එක දීලා, Month Name එක print කරන්න switch එකක් පාවිච්චි කරන්න පුළුවන්.

මේ Post එක ගැන ඔයාලගේ අදහස්, ප්‍රශ්න තියෙනවා නම් අනිවාර්යයෙන්ම පහළින් Comment එකක් දාන්න. මම පුළුවන් ඉක්මනට උත්තර දෙන්නම්. ඊළඟ Post එකකින් තවත් වැදගත් දෙයක් ගැන කතා කරමු. එතකන් හැමෝටම ජය වේවා! Happy Coding!