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!