Home / ພື້ນຖານ Java / ຄຳສັ່ງວົນຊ້ຳ
ຄຳສັ່ງວົນຊ້ຳ (loop statements) ເປັນຄຳສັ່ງທີ່ເຮັດໃຫ້ເຮົາສາມາດຄວບຄູມໂປຣແກຣມໃຫ້ມັນເຮັດວຽກຊ້ຳໆໄດ້ ຖ້າຫາກເງືອນໄຂນັ້ນຍັງຄົງເປັນຈິງ ມັນເປັນຄຳສັ່ງທີ່ມີປະໂຫຍດເປັນຢ່າງຫຼາຍໃນການຂຽນໂປຣແກຣມ ທີ່ເຮົາຈະໄດ້ຮຽນຮູ້ໃນບົດນີ້ ຄື ຄຳສັ່ງ while loop, do-while loop ແລະ for loop ມາເລີ່ມຕົ້ນກັບຄຳສັ່ງພື້ນຖານທີ່ສຸດຄື while loop
ຄຳສັ່ງວົນຊ້ຳທີ່ງ່າຍທີ່ສຸດໃນພາສາ Java ຄື ຄຳສັ່ງ While loop ໂດຍມັນມີຮູບແບບໃນການໃຊ້ງານດັ່ງນີ້
while ( expression ) {
// statements
}
ໝາຍເຫດ: ໃນການໃຊ້ງານຄຳສັ່ງ while ສຳລັບການສ້າງ while loop ແລະ expression ຄືເງື່ອນໄຂທີ່ຈະໃຫ້ໂປຣແກຣມເຮັດວຽກໃນ loop ຖ້າຫາກເງື່ອນໄຂເປັນຈິງໂປຣແກຣມຈະເຮັດວຽກໃນບອກຄຳສັ່ງວົງເລັບປີກກາ { } ເມື່ອເງືອນໄຂບໍ່ເປັນຈິງໂປຣແກຣມຈະອອກຈາກລູບ ແລະ ຈະເຮັດວຽກຄຳສັ່ງຕໍ່ໄປຫຼັງ while
public class WhileLoop {
public static void main(String[] args) {
int i = 1;
while ( i <= 10 ) {
System.out.print (i + ", ");
++i;
}
System.out.println("End");
}
}
ໃນໂປຣແກຣມ ນັ້ນເຮົາໄດ້ປະກາດຕົວແປຣ i ມາໃຊ້ໃນການນັບ ໃນເງືອນໄຂຂອງ while ເຮົາໄດ້ກວດສອບວ່າຖ້າຫາກ i ນ້ອຍກວ່າ ຫລື ເທົ່າກັບ 10 while ( i <= 10 ) ໂປຣແກຣມຈະເຮັດວຽກໃນ loop ແລະ ສະແດງຄ່າ i ອອກມາ ແຕ່ລະຮອບເຮົາຈະເຮັດການເພີ່ມຄ່າຂອງ i ດ້ວຍຄຳສັ່ງ ++i; ເພື່ອປ້ອງກັນບໍ່ໃຫ້ລູບເຮັດວຽກຕະຫລອດໄປ (Infinity loop) ຈົນກວ່າເງືອນໄຂບໍ່ເປັນຈິງ ໂປຣແກຣມໄດ້ອອກນອກລູບ ແລະ ເຮັດຄຳສັ່ງຕໍ່ມາ
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, End
ໝາຍເຫດ: ຂ້າງລຸ່ມນີ້ເປັນຜົນອອກຂອງໂປຣແກຣມ ເຮົາຈະເຫັນວ່າມັນວິເສດໄປເລີຍ ເຮົາສາມາດເຮັດໃຫ້ມັນສະແດງຜົນໄດ້ 10 ເທື່ອພຽງແຕ່ຂຽນໂປຣແກຣມບໍ່ຈັກບັນທັດ ແນ່ນອນເຮົາຈະເຮັດໃຫ້ມັນສະແດງເຖິງ 100 ກໍ່ຍັງໄດ້ ພຽງແຕ່ປ່ຽນເງືອນໄຂໃຫ້ເປັນ while ( i <= 100 ) ເທົ່ານັ້ນເອງ
ຄຳສັ່ງວົນຊ້ຳອີກຊະນິດໜຶ່ງຄື ຄຳສັ່ງ do-while loop ເຊິ່ງຄຳສັ່ງນີ້ຈະເຮັດວຽກແຕກຕ່າງຈາກຄຳສັ່ງ while loop ນ້ອຍດຽວຄື ມັນຈະເຮັດວຽກກ່ອນຢ່າງນ້ອຍ 1 ເທື່ອຫຼັງຈາກນັ້ນຈະກວດສອບເງື່ອນໄຂຢູ່ທາງທ້າຍຂອງ loop ມັນມີຮູບແບບການໃຊ້ງານດັ່ງຕໍ່ໄປນີ້
do {
// statements
} while ( expression );
ຕໍ່ໄປມາເບິ່ງຕົວຢ່າງການໃຊ້ງານຄຳສັ່ງ do-while loop ໃນພາສາ Java ເຮົາຈະຂຽນໂປຣແກຣມໃນການກວດສອບຕົວເລວ່າເປັນຈຳນວນຄີ່ຫຼືຄູ່ (odd or even number)
import java.util.Scanner;
public class DoWhileLoop {
public static void main(String[] args) {
Scanner reader = new Scanner(System.in);
int number;
System.out.println("\tDetermine odd/even program");
do {
System.out.print("Enter odd number to exit loop: ");
number = reader.nextInt();
if (number % 2 == 0) {
System.out.println("You entered " + number + ", it's even.");
} else {
System.out.println("You entered " + number + ", it's odd.");
}
} while (number % 2 == 0);
System.out.println("Exited loop.");
}
}
ໃນຕົວຢ່າງໂປຣແກຣມຈະຖາມໃຫ້ຜູ້ໃຊ້ໃຫ້ປ້ອນຕົວເລກຄີກ (odd number) ເພື່ອອອກຈາກລູບ ໂປຣແກຣມຈະເຮັດວຽກໃນລູບເລື້ອຍໆ ຖ້າຫາກທ່ານຍັງຄົງປ້ອນເລກຄູ່ (even number) ໂດຍ number % 2 == 0 ເປັນ expression ເພື່ອກວດສອບວ່າຕົວເລກເປັນເລກຄູ່ ຫລື ບໍ່ ໂດຍການໃຊ້ຕົວດຳເນີນການ Mod ເລກຄູ່ ຄື ເລກທີ່ຫານດ້ວຍ 2 ແລ້ວມີເສດເປັນ 0
Determine odd/even program
Enter odd number to exit loop: 2
You entered 2, it's even.
Enter odd number to exit loop: 4
You entered 4, it's even.
Enter odd number to exit loop: 8
You entered 8, it's even.
Enter odd number to exit loop: 0
You entered 0, it's even.
Enter odd number to exit loop: 3
You entered 3, it's odd.
Exited loop.
ເຮົາໄດ້ຮຽນຮູ້ຄຳສັ່ງລູບພື້ນຖານໄປແລ້ວ ຕໍ່ໄປເຮົາຈະໃຫ້ໄປຮູ້ຈັກກັບ For loop ເຊິ່ງເປັນ loop ທີ່ນິຍົມໃຊ້ກັນເປັນຈຳນວນຫຼາຍ ເພາະວ່າ For loop ມັກຈະໃຊ້ກັບ Loop ທີ່ຮູ້ຈຳນວນການວນຊ້ຳທີ່ແນ່ນອນ ແລະ ມັນອຳນວຍຄວາມສະດວກໃນການປະກາດຕົວແປຣເລີ່ມຕົ້ນ ກຳນົດເງືອນໄຂ ແລະ ເພີ່ມລຸດຄ່າໄວ້ເທື່ອດຽວກັນ ເຊິ່ງຕົວແປຣເຫຼົ່ານີ້ສາມາດໃຊ້ໄດ້ພຽງແຕ່ໃນ Loop scope ເທົ່ານັ້ນ
for (initial; condition; update) {
// Statements
}
ສຳລັບຮູບແບບຂອງ for loop ນັ້ນຈະມີການກຳນົດສ່ວນປະກອບ 3 ສ່ວນຄື initial ຄືການປະກາດສ່ວນເລີ່ມຕົ້ນຂອງລູບ ເຊັ່ນ ກຳນົດຄ່າໃຫ້ກັບຕົວແປຣ condition ຄືການກຳນົດເງືອນໄຂທີ່ຈະໃຫ້ເຮັດວຽກໃນລູບ ແລະ update ເປັນການອັບເດດຄ່າຫຼັງຈາກຈົບແຕ່ລະລູບ ເຊິ່ງຈະເຫັນວ່າມັນລວມກັນທີ່ສ່ວນຫົວຂອງ for ເຊິ່ງງ່າຍຕໍ່ການໃຊ້ງານ
ຕໍ່ໄປມາເບິ່ງຕົວຢ່າງ ການໃຊ້ For loop ໃນພາສາ Java ຕົວຢ່າງນີ້ ເຮົາຈະໃຊ້ຕົວຢ່າງດຽວກັນກັບ While loop ຄືສະແດງເລກ 1 - 10
public class ForLoop {
public static void main(String[] args) {
for (int i = 1; i <= 10; i++) {
System.out.println("Loop " + i);
}
System.out.println("End of loop");
}
}
ໝາຍເຫດ: ຈາກຕົວຢ່າງນັ້ນຈະໄດ້ຜົນລັບເຊັ່ນກັນກັບ while loop ໃນຕົວຢ່າງກ່ອນໜ້າ ເຮົາຈະເຫັນວ່າມັນງ່າຍ ແລະ ສະດວກກວ່າໃນການໃຊ້ງານ ນອກຈາກນີ້ For loop ຍັງນິຍົມໃຊ້ກັບຂໍ້ມູນແບບອາເຣ ເຮົາຈະໄດ້ຮຽນໃນບົດຕໍ່ໄປ
ເຊັ່ນດຽວກັນ ຄຳສັ່ງ loop ທຸກຊະນິດສາມາດທີ່ຈະຊ້ອນກັນໄດ້ ເຊິ່ງເຮົາເອີ້ນວ່າ Nested loop ຕໍ່ໄປມາເບິ່ງຕົວຢ່າງການໃຊ້ຄຳສັ່ງ For loop ຊ້ອນກັນ ໂດຍເຮົາຈະສ້າງມາຕິກຂະໜາດ 2 ມິຕິ ທີ່ແຕ່ລະຄ່າເປັນຄ່າຂອງ i ແລະ j ຄູນກັນ
public class ForLoop {
public static void main(String[] args) {
int width = 6;
int height = 6;
System.out.println("\tMatrix program");
for (int i = 1; i <= height ; i++) {
for (int j = 1; j <= width ; j++) {
System.out.print("\t" + (i * j));
}
System.out.println();
}
}
}
ໃນຕົວຢ່າງ ເຮົາໄດ້ສ້າງ For loop ສອງອັນທີ່ຊ້ອນກັນຢູ່ ໂດຍລູບຂ້າງນອກ (outer loop) ຈະເຮັດການວົນລູບຕາມຈຳນວນໃນຕົວແປຣ height ແລະ ລູບຂ້າງໃນ (inner loop) ຈະເຮັດການວົນຕາມຈຳນວນ width ຜົນລັບຂອງຕົວເລກທີ່ໄດ້ນັ້ນເກີດຈາກ ຄ່າຂອງ i * j ແລ ະເຮົາໃຊ້ Tab (\t) ເພື່ອເຮັດໃຫ້ມັນສວຍງາມນັ້ນເອງ
Matrix program
1 2 3 4 5 6
2 4 6 8 10 12
3 6 9 12 15 18
4 8 12 16 20 24
5 10 15 20 25 30
6 12 18 24 30 36
ໝາຍເຫດ: ໃນການຂຽນໂປຣແກຣມເຮັດວຽກກັບ Loop ນັ້ນຈະມີຄຳສັ່ງສອງຊະນິດທີ່ເຮົາມັກຈະຕ້ອງໃຊ້ຄວບຄຸມການເຮັດວຽກຂອງ Loop ໃນກໍ່ລະນີພິເສດ ໂດຍຄຳສັ່ງເຫຼົ່ານັ້ນຄື Continue ແລະ Break
ຄຳສັ່ງ Continue ຄືຄຳສັ່ງທີ່ໃຊ້ໃນການຂ້າມການເຮັດວຽກງານຂອງລູບໃນຮອບປະຈຸບັນ ນັ້ນໝາຍຄວາມວ່າ ລູບຈະເລີ່ມຕົ້ນຄຳສັ່ງໃໝ່ທັນທີເມື່ອເຈີຄຳສັ່ງ continue; ສຳລັບຕົວຢ່າງການໃຊ້ຄຳສັ່ງ Continue ໃນພາສາ Java
public class ContinueStatement {
public static void main(String[] args) {
for (int i = 10; i >= 1; i--) {
if (i == 5) {
continue;
}
System.out.print(i + ", ");
}
System.out.println(" End");
}
}
ໃນຕົວຢ່າງ ເປັນການໃຊ້ຄຳສັ່ງ continue ກັບ For loop ໂດຍໃນໂປຣແກຣມເປັນການສະແດງຕົວເລກຈາກ 10 ແລະລຸດລົງເທື່ອລະຄ່າຈົນເຖິງ 1 ໃນໂປຣແກຣມນັ້ນເຮົາບໍ່ມັກເລກ 5 ເຮົາຈຶ່ງໃຊ້ຄຳສັ່ງ if (i == 5) ເພື່ອໃຫ້ໂປຣແກຣມຂ້າມການເຮັດວຽກງານການສະແດງຜົນຂອງເລກ 5
10, 9, 8, 7, 6, 4, 3, 2, 1, End
ຄຳສັ່ງ break ເປັນຄຳສັ່ງທີ່ໃຊ້ໃນການຢຸດການເຮັດວຽກງານຂອງລູບໃນທັນທີ ມັນບໍ່ໄດ້ສົນໃຈວ່າເງື່ອນໄຂການເຮັດວຽກງານຂອງລູບຈະເປັນຈິງຢູ່ຫຼືບໍ່ ເມື່ອໂປຣແກຣມເຈີຄຳສັ່ງ break ມັນຈະອອກຈາກລູບ ແລະ ເຮັດວຽກຕໍ່ໄປຫຼັງຈາກລູບໃນທັນທີ ສຳລັບຕົວຢ່າງການໃຊ້ຄຳສັ່ງ break ໃນພາສາ Java
public class BreakStatement {
public static void main(String[] args) {
int i = 1;
while (i <= 10) {
if (i == 7) {
break;
}
System.out.print(i + ", ");
++i;
}
System.out.println(" End");
}
}
ໃນຕົວຢ່າງຂ້າງເທິງ ເປັນການໃຊ້ງານຄຳສັ່ງ While loop ຄືເກົ່າ ໂປຣແກຣມຂອງເຮົາເປັນໂປຣແກຣມໃນການສະແດງຕົວເລກ 1 - 10 ໃນຕົວຢ່າງເຮົາໄດ້ໃຊ້ຄຳສັ່ງ if (i == 7) ດັ່ງນັ້ນເມື່ອ i ເທົ່າກັບ 7 ໂປຣແກຣມຈະໄປເຮັດວຽກຄຳສັ່ງ break ແລະອອກຈາກ While loop ໃນທັນທີ ເຖິງແມ່ນວ່າຄ່າຂອງ i ຈະຍັງນ້ອຍກວ່າ 10 ຢູ່ກໍ່ຕາມ
1, 2, 3, 4, 5, 6, End
ໝາຍເຫດ: ຄໍາສັ່ງ break ແລະ continue ນັ້ນຖືວ່າມີປະໂຫຍດຢ່າງຫຼວງຫຼາຍໃນການຂຽນໂປຣແກຣມ ໃນກໍ່ລະນີທີ່ຕ້ອງການໃຫ້ມັນອອກຈາກ Loop ໃນເງື່ອນໄຂ ເຊັ່ນ ການຂຽນເກມ ນອກຈາກເກມຈະຈົບຫຼັງຈາກທີ່ມັນ Over ແລ້ວ ຜູ້ໃຊ້ຍັງສາມາດກົດປຸ່ມ ESC ເພື່ອອອກຈາກເກມໄດ້ ເປັນຕົ້ນ