Home / ພື້ນຖານ Java / ຄຳສັ່ງເງື່ອໄຂ
ເຮົາຈະໄດ້ຮຽນຮູ້ວິທີການຄວບຄຸມການເຮັດວຽກງານຂອງໂປຣແກຣມໂດຍຄຳສັ່ງເງື່ອນໄຂໃນພາສາ Java ເພື່ອຄວບຄຸມໂປຣແກຣມໃຫ້ເຮັດວຽກຕາມທີ່ຕ້ອງການ ໂດຍຄຳສັ່ງເງື່ອນໄຂໃນພາສາ Java ທີ່ເຮົາຈະຮຽນຮູ້ໃນບົດນີ້ຈະມີນຳກັນດັ່ງນີ້
• ຄຳສັ່ງ if
• ຄຳສັ່ງ if else
• ຄຳສັ່ງ else-if
• ຄຳສັ່ງ switch
• Ternary Operator
ໃນບາງເທື່ອ ໂປຣແກຣມຂອງເຮົາຈະຕ້ອງເຮັດວຽກຕາມເງື່ອນໄຂຕ່າງໆ ໂດຍເຮົາສາມາດໃຊ້ຄຳສັ່ງ If ເພື່ອໃຊ້ໃນການປຽບທຽບເງືອນໄຂເພື່ອໃຫ້ໂປຣແກຣມເຮັດວຽກໄດ້ ມັນມີຮູບແບບການໃຊ້ງານດັ່ງນີ້
if (expression) {
statements
}
ຮູບແບບດ້ານເທິງເປັນວິທີການໃຊ້ຄຳສັ່ງ If ໂດຍໃນບອກ { } ຂອງຄຳສັ່ງ If ນັ້ນຈະເຮັດວຽກກໍ່ຕໍ່ເມື່ອ expression ເປັນ true ເທົ່ານັ້ນ ຖ້າຫາກບໍ່ໃຊ້ ໂປຣແກຣມຈະຂ້າມບອກຄຳສັ່ງນີ້ໄປ ມາເບິ່ງຕົວຢ່າງການໃຊ້ງານ
public class IfStatement {
public static void main(String[] args) {
String username = "Kittisay";
String password = "1234";
if (username == "Kittisay") {
System.out.println("Your username has a permission.");
}
if (username == "Kittisay" && password == "1234") {
System.out.println("You're now logged in.");
}
}
}
ໝາຍເຫດ: ຕົວຢ່າງຂ້າງເທິງ ເປັນການໃຊ້ຄຳສັ່ງ If ເພື່ອກວດສອບຊື່ຜູ້ໃຊ້ ແລະ ລະຫັດຜ່ານໃນການເຂົ້າສູ່ລະບົບ ໃນບອກຄຳສັ່ງ If ອັນທຳອິດຈະກວດສອບວ່າ username ມີສິດໃນການທີ່ຈະເຂົ້າລະບົບຫລືບໍ່ ແລະ (username == "Kittisay") ຂອງມັນ ແລະ ບອກຄຳສັ່ງ If ອັນທີ່ສອງ ເປັນການກວດສອບການເຂົ້າລະບົບ ໂດຍມີ expression ຍ່ອຍສອງອັນ ທີ່ເຊື່ອມກັນດ້ວຍຕົວດຳເນີນການ And ນັ້ນໝາຍຄວາມວ່າທັງສອງຕ້ອງເປັນຈິງທັງໝົດຄຳສັ່ງແຖວນີ້ຈຶງຈະເຮັດວຽກ
Your username has a permission.
You're now logged in.
ຫຼັງຈາກທີ່ເຮົາຮູ້ຈັກວິທີການໃຊ້ງານຄຳສັ່ງ If ແລ້ວ ຄຳສັ່ງໜຶ່ງທີ່ມັນຕ້ອງໃຊ້ຮ່ວມກັນຄືຄຳສັ່ງ Else clause ເປັນຄຳສັ່ງສຳລັບໄວ້ໃຫ້ໂປຣແກຣມເຮັດວຽກເມື່ອເງື່ອນໄຂຂອງຄຳສັ່ງ If ເປັນບໍ່ເປັນຈິງ ຕົວຢ່າງການໃຊ້ຄຳສັ່ງ If-Else
public class IfElseStatement {
public static void main(String[] args) {
String username = "Kittisay";
String password = "abcd";
if (username == "Kittisay" && password == "1234") {
System.out.println("You're now logged in.");
} else {
System.out.println("Sorry, your usename or password is incorrect.");
}
}
}
ໃນຕອນນີ້ ເຮົາໄດ້ມີບອກຂອງຄຳສັ່ງ Else ມາຮອງຮັບໃນກໍ່ລະນີທີ່ເງື່ອນໄຂໃນຄຳສັ່ງ If ບໍ່ເປັນຈິງ ແລະ ຈາກໂປຣແກຣມ ເຮົາໄດ້ປ່ຽນໃຫ້ password ມີຄ່າເປັນ abcd ເພື່ອທົດສອບໂປຣແກຣມ ແລະ ໄດ້ຜົນລັບກດັ່ງລຸ່ມນີ້
Sorry, your usename or password is incorrect
ໝາຍເຫດ: ຈະເຫັນວ່າໂປຣແກຣມຈະເຮັດວຽກໃນບອກຄຳສັ່ງຂອງ Else ເພາະວ່າ expression ຂອງ If ບໍ່ເປັນຈິງ
ນອກຈາກນີ້ ເຮົາຍັງສາມາດໃຊ້ຄຳສັ່ງ Else-If ໃນກໍ່ລະນີທີ່ເງື່ອນໄຂຂອງເຮົາມີຫຼາຍເງືອນໄຂ ແລະ ການເຮັດວຽກງານໃນແຕ່ລະຢ່າງແຕກຕ່າງກັນ ເຮົາຈະຍົກຕົວຢ່າງໃໝ່ ເຊິ່ງເປັນການປະເມີນເມື່ອເຮົາໄດ້ຄະແນນຫຼັງເຮົາຫລິ້ນເກມຈົບ ແລະ ນິ້ເປັນຕົວຢ່າງການໃຊ້ຄຳສັ່ງທັງໝົດທັງຫມົດຂອງ else if
import java.util.Scanner;
public class ElseIf {
public static void main(String[] args) {
Scanner sn = new Scanner(System.in);
System.out.println("\tScore Evaluation Program");
System.out.print("Enter your score between 0 - 100: ");
int score = sn.nextInt();
if (score < 0 || score > 100) {
System.out.println("You must enter a correct score, try again later.");
} else {
if (score >= 80) {
System.out.println("Your score is excellent.");
System.out.println("You grant grade S.");
} else if (score >= 60) {
System.out.println("Your score is good.");
System.out.println("You grant grade A.");
} else if (score >= 40) {
System.out.println("Your score is fair.");
System.out.println("You grant grade B.");
} else {
System.out.println("Your score is poor.");
System.out.println("You grant grade C.");
}
}
}
}
ໃນຕົວຢ່າງ ໂປຣແກຣມຈະຖາມຜູ້ໃຊ້ເພື່ອໃຫ້ປ້ອນຄະແນນຂອງເຮົາ ແລ້ວເກັບໄວ້ໃນຕົວແປຣ score ໃນຕອນທຳອິດເຮົາໄດ້ນຳໄປກວດສອບວ່າຄະແນນນັ້ນຖືກຕ້ອງ ຫລື ບໍ່ ໂດຍມັນຕ້ອງຢູ່ໃນຊ່ວງທີ່ກຳນົດ ໂດຍ expression (score < 0 || score > 100) ໃຊ້ໃນການກວດສອບ ຖ້າເປັນຈິງໝາຍເຖິງຄະແນນບໍ່ຖືກຕ້ອງຈະແຈ້ງຂໍ້ຄວາມບອກຜູ້ໃຊ້ ແລະ ຖ້າຫາກມັນຖືກຕ້ອງ ໂປຣແກຣມຈະມາເຮັດໃນບອກຂອງຄຳສັ່ງ Else ໂດຍຈະນຳຄະແນນມາກວດສອບເປັນຊ່ວງໆ ດ້ວຍຄຳສັ່ງ Else-If ເຊິ່ງໂປຣແກຣມຈະເຮັດວຽກແຕ່ບອກດຽວເທົ່ານັ້ນ ເຊັ່ນໃນຕົວຢ່າງ ເມື່ອປ້ອນຄະແນນເປັນ ຸ68 ຈະເຮັດໃຫ້ expression ໃນບອກຂອງ else if (score >= 60) ເປັນຈິງໂປຣແກຣມກໍ່ຈະເຮັດວຽກໃນບອກນີ້ ແລະ ບໍ່ສົນໃຈຄຳສັ່ງທີ່ເຫຼືອທັງໝົດນັ້ນເອງ
Score Evaluation Program
Enter your score between 0 - 100: 68
Your score is good.
You grant grade A.
ໝາຍເຫດ: ນິ້ເປັນຕົວຢ່າງຂອງໂປຣແກຣມໃສ່ຄ່າຄະແນນເປັນ 68 ເຮົາສາມາດລອງໃສ່ຄ່າອື່ນໄດ້ ເຊັ່ນ ຄ່າທີ່ບໍ່ຢູ່ໃນລະຫວ່າງ 1 - 100 ເພື່ອເບິ່ງຜົນລັບທີ່ຕ່າງກັນອອກໄປ
ຄຳສັ່ງ If, Else ເຫຼົ່ານີ້ ສາມາດທີ່ຈະຊ້ອນກັນໄດ້ ຄືດັ່ງທີ່ເຮົາເຫັນໃນຕົວຢ່າງກ່ອນໜ້າ ມັນສາມາດຊ້ອນກັນໄດ້ບໍ່ຈຳກັດ ຕາມຫຼັກການຂຽນໂປຣແກຣມພື້ນຖານ ການຊ້ອນກັນຈະຢູ່ໃນບອກຄຳສັ່ງຂອງອີກຄຳສັ່ງ ເຊິ່ງມັນຂຶ້ນກັບໂປຣແກຣມທີ່ເຮົາຂຽນ ແລະ ຈະອອກແບບມັນຢ່າງໃດ ສຳລັບຕົວຢ່າງເພິ່ມເຕິມ
if ( expression ) {
// nested level 1
if ( expression) {
// nested level 2
if ( expression) {
...
}
}
} else {
// nested level 1
if ( expression) {
}
}
Switch ເປັນຄຳສັ່ງໃນການເລືອກເຮັດວຽກຂອງເງື່ອນໄຂທີ່ກົງກັນພຽງແຕ່ເງື່ອນໄຂດຽວເທົ່ານັ້ນ ໃນການໃຊ້ Switch ນັ້ນຈະຄ້າຍກັບຄຳສັ່ງ Else-If clause ມາເບິ່ງຕົວຢ່າງ ແລະ ຄຳອະທິບາຍໃນການໃຊ້ Switch ໃນພາສາ Java
ເຮົາຈະຢົກຕົວຢ່າງສຳລັບໂປຣແກຣມການເຮັດວຽກງານຂອງລິບ ໂດຍຈະໃຫ້ຜູ້ໃຊ້ກົດປຸ່ມຊັ້ນທີ່ຕ້ອງການໄປ ຜູ້ໃຊ້ສາມາດກົດຕົວອັກສອນຫຍັງກໍ່ໄດ້ ແຕ່ລິບເຮົາມີແຕ່ 4 ຊັ້ນ ດ້ານລຸ່ມນີ້ເປັນໂຄ້ດຂອງໂປຣແກຣມ
import java.util.Scanner;
public class Switch {
public static void main(String[] args) {
Scanner reader = new Scanner(System.in);
System.out.print("What\'s floor do you want to go: ");
char floor = reader.next().charAt(0);
switch (floor) {
case 'G' :
System.out.println("Elevator is going to ground floor.");
break;
case '1' :
System.out.println("Elevator is going to first floor.");
break;
case '2' :
System.out.println("Elevator is going to second floor.");
break;
case '3' :
System.out.println("Elevator is going to third floor.");
break;
default:
System.out.println("Elevator don't know where to go.");
}
}
}
ໃນຕົວຢ່າງເຮົາໄດ້ໃຊ້ຄຳສັ່ງ reader.next().charAt(0); ເພາະວ່າເຮົາຕ້ອງການອ່ານຄ່າທີ່ເປັນຕົວອັກສອນພຽງ 1 ຕົວ
ເຮົາໃຊ້ຄຳສັ່ງ Switch ແລະ ມັນຈະຮັບຄ່າພາລາມິເຕີເຂົ້າມາໄດ້ແຕ່ພຽງ 1 ຄ່າເທົ່ານັ້ນ ໃນຕົວຢ່າງຄື floor ມັນຈະຖືກນຳໄປປຽບທຽບກັບຄ່າໃນຄຳສັ່ງ case ຄ່າໃນ case ນັ້ນສາມາດເປັນໄດ້ພຽງແຕ່ຄ່າຄົງທີ່ເທົ່ານັ້ນ ແລະ ເມື່ອກົງກັບ case ໃດກໍ່ຕາມໂປຣແກຣມຈະເຮັດວຽກໃນຄຳສັ່ງຫຼັງຈາກເຄດນັ້ນຈົນໝົດ ນັ້ນໝາຍຄວາມວ່າເຮົາຕ້ອງໃຊ້ຄຳສັ່ງ break ເພື່ອບໍ່ໃຫ້ມັນເຮັດວຽກຂອງ case ຕໍ່ໄປ
ຄຳສັ່ງ default ນັ້ນໂປຣແກຣມຈະເຮັດໃນກໍ່ລະນີທີ່ມັນບໍ່ໄດ້ກົງກັບ case ໃດເລີຍກ່ອນໜ້າ ເຊິ່ງຈະເປັນຄຳສັ່ງສຸດທ້າຍທີ່ໃສ່ໄວ້ໃນ Switch ເຮົາຈຶ່ງບໍ່ຈຳເປັນຕ້ອງໃສ່ຄຳສັ່ງ break (ມັນກໍ່ຄ້າຍຄືກັບຄຳສັ່ງ else ນັ້ນເອງ)
What's floor do you want to go: 1
Elevator is going to first floor.