ຄຳສັ່ງ
for ເປັນຄຳສັ່ງທີ່ເປັນໂຄງສ້າງແບບທຳຊ້ຳ
ທີ່ມີຮູບແບບຂອງຄຳສັ່ງດັ່ງນີ້
|
ໂດຍມີໂຟຊາດຂອງການທຳງານຂອງຄຳສັ່ງນີ້ເຊັ່ນດຽວກັບໂຟຊາດຊ່ອງຄຳສັ່ງ
while ໃນຮູບທີ 3.9 ຄຳສັ່ງ for
ຈະໃຊ້ໃນກໍລະນີທີ່ຮູ້ຈຳນວນເທື່ອໃນການທຳຊ້ຳທີ່ແນ່ນອນ ສ່ວນຄຳສັ່ງ
while ຫລື do..while
ນິຍາມໃຊ້ໃນກໍລະນີທີ່ບໍ່ຮູ້ຈຳນວນເທື່ອໃນການທຳງານຊ້ຳລ່ວງໜ້າ
ຕົວຢ່າງເຊັ່ນຄຳສັ່ງພິມຂໍ້ຄວາມ Hello
World ສິບເທື່ອ ຄວນໃຊ້ຄຳສັ່ງ for ຫລາຍກວ່າໃຊ້ຄຳສັ່ງ while ຫລື do..while
ໂດຍສາມາດຂຽນຄຳສັ່ງໄດ້ດັ່ງນີ້
for (int count = 1; count <= 10;
count++) {
System.out.println(“Hello
World”);
}
ໃນກໍລະນີຈະເຫັນໄດ້ວ່າຊຸດຄຳສັ່ງທີ່ໃຊ້ຄຳສັ່ງ for
ຈະມີຮູບແບບທີ່ກະຊັບກວ່າເມື່ອທຽບກັບກໍລະນີຄຳສັ່ງ while ຫລື do..while
ຄຳສັ່ງກຳນົດຄ່າເລີ່ມຕົ້ນຫລືຄຳສັ່ງປ່ຽນແປງຄ່າທີ່ຢູ່ໃນຄຳສັ່ງ
for ສາມາດທີ່ຈະມີຫລາຍກວ່າຢ່າງລະໜຶ່ງຄຳສັ່ງ ໂດຍຈະໃຊ້ເຄື່ອງໝາຍ,
ໃນການແຍກຄຳສັ່ງ ເຊັ່ນ
for (int i = 0, j = 0; i < 4;
i++, j += 2) {
System.out.println(i + “ ” + j);
}
ໂປຣແກຣມຄຳສັ່ງທີ່ຈະພິມຄ່າຂອງຕົວແປ
i ແລະ j ທີ່ກຳນົດຂຶ້ນພາຍໃນຄຳສັ່ງ for ສີ່ເທື່ອ ໂດຍຕົວແປ i
ຈະເພີ່ມຄ່າຂຶ້ນທີລະໜຶ່ງ ແລະຕົວແປ j ຈະເພີ່ມຄ່າຂຶ້ນທີລະສອງ
ໂປຣແກຣມທີ
3.7 ຕົວຢ່າງການໃຊ້ຄຳສັ່ງ for
|
ໂປຣແກຣມທີ 3.5
ສະແດງຕົວຢ່າງການໃຊ້ຄຳສັ່ງ for ເພື່ອພິມຕົວເລກ 1 ເຖິງ 10
ເຊິ່ງຈະໄດ້ຜົນລັບເຊັ່ນດຽວກັບໂປຣແກຣມທີ 3.5 ແລະໂປຣແກຣມ 3.6
ຕົວແປທີ່ປະກາດໃນຄຳສັ່ງກຳນົດຄ່າຂອງຄຳສັ່ງ for ຈະມີຂອບເຂດການໃຊ້ງານໄດ້ສະເພາະພາຍໃນບ໋ອກ
{ } ຂອງຄຳສັ່ງ for ເທົ່ານັ້ນ ການໃຊ້ງານຕົວແປນອກບ໋ອກ { } ຈະເກີດ Compile
errorດັ່ງສະແດງໃນຕົວຢ່າງຂອງໂປຣແກຣມທີ 3.8
ໂປຣແກຣມທີ
3.8 ຂອງເຂດການໃຊ້ງານຂອງຕົວແປ
ເຮົາບໍ່ສາມາດໃຊ້ຄຳສັ່ງ for
ໃນກໍລະນີບໍ່ຮູ້ຈຳນວນເທື່ອໃນການທຳຊ້ຳທີ່ແນ່ນອນຕົວຢ່າງເຊັ່ນໂປຣແກຣມທີ
3.9 ເປັນການສຸ່ມຕົວເລກສອງຕົວທີ່ມີຄ່າລະຫວ່າງ 1 ເຖິງ 10
ໂດຍໃຫ້ທຳການສຸ່ມຕົວເລກທັງສອງຈົນກວ່າຜົນການສຸ່ມຂອງເລກທັງສອງມີຄ່າເທົ່າກັນ
ເມທອດ Math.random
ເປັນເມທອດທີ່ໃຊ້ໃນການສຸ່ມເລກຈຳນວນທົດສະນິຍົມລະຫວ່າງ 0 ເຖິງ 1
ແລະຄຳສັ່ງ
i = (int ) (Math.random () * 10 ) +1;
ເປັນຄຳສັ່ງທີ່ໃຊ້ໃນການສຸ່ມຕົວເລກລະຫວ່າງ
1 ເຖິງ 10 ແລ້ວກຳນົດຄ່າໃຫ້ກັບຕົວແປ i ໂປຣແກຣມນີ້ສາມາດຂຽນໃໝ່
ໂດຍໃຊ້ຄຳສັ່ງ while ໄດ້ແຕ່ບໍ່ສາມາດທີ່ຈະຂຽນໂດຍໃຊ້ຄຳສັ່ງ for
ເນື່ອງຈາກບໍ່ຮູ້ຈຳນວນເທື່ອທີ່ຕ້ອງການສຸ່ມຕົວເລກທີ່ແນ່ນອນໄດ້
ໂປຣແກຣມທີ
3.9 ການສຸ່ມຕົວເລກສອງຕົວທີ່ມີຄ່າລະຫວ່າງ1 ເຖິງ 10
3.4 ໂຄງສ້າງແບບຊ້ອນ (Nested Structure)
ຄຳສັ່ງໂຄງສ້າງຄວບຄຸມສາມາດຂຽນຊ້ອນກັນໄດ້ເຊັ່ນ ໃຊ້ຄຳສັ່ງ if
ແບບຊ້ອນ ຄຳສັ່ງ for
ແບບຊ້ອນໂຄງສ້າງແບບຊ້ອນສາມາດທີ່ຈະມີຄຳສັ່ງໂຄງສ້າງຄວບຄຸມທີ່ຢູ່ພາຍໃນແລະພາຍນອກແຕກຕ່າງກັນໄດ້
ເຊັ່ນ ຄຳສັ່ງ
for (int i = 1; i <= 40; i++) {
if ((i%5) == 0) {
System.out.println(i);
}
}
ເປັນຄຳສັ່ງ
if ທີ່ຢູ່ພາຍໃນຄຳສັ່ງ for ເພື່ອທີ່ຈະພິມຕົວເລກລະຫວ່າງ 1 ເຖິງ 40
ທີ່ຫານ 5 ລົງຕົວອອກມາພາສາຈາວາອະນຸຍາດໃຫ້ຂຽນຄຳສັ່ງໂຄງສ້າງຄວບຄຸມຊ້ອນກັນຫລາຍໆ
ຂັ້ນໄດ້ ຄຳສັ່ງໂຄງສ້າງແບບຊ້ອນທີ່ໃຊ້ກັນທົ່ວໄປແບບໜຶ່ງຄືຄຳສັ່ງ for
ແບບຊ້ອນ ຕົວຢ່າງເຊັ່ນ ຄຳສັ່ງ
for (int i = 1; i <= 3; i++) {
for (int j = 1; j <= 4; j++) {
System.out.println(“i =”+i+“ j =” +j);
}
}
ມີຄຳສັ່ງ
for ທີ່ຢູ່ພາຍນອກຈະທຳຊ້ຳສາມເທື່ອ ໂດຍກຳນົດໃຫ້ຕົວແປ i ມີຄ່າເລີ່ມຕົ້ນ
1 ແລະເພີ່ມທີລະໜຶ່ງສ່ວນຄຳສັ່ງ for ທີ່ຢູູ່ພາຍໃນຈະທຳຊ້ຳສີ່ເທື່ອ
ໃນແຕ່ລະຮອບຂອງຄຳສັ່ງ for ພາຍນອກ ໂດຍກຳນົດໃຫ້ຕົວແປ j
ມີຄ່າເລີມຕົ້ນເປັນ 1 ແລະເພີ່ມທີລະໜຶ່ງ ດັ່ງນັ້ນຄຳສັ່ງສະແດງຜົນ
(System.out.println () )ຈະທຳຊ້ຳທັງໝົດ 12 ເທື່ອ
ໂປຣແກຣມທີ 3.10
ເປັນຕົວຢ່າງການໃຊ້ຄຳສັ່ງ for ແບບຊ້ອນ ໂດຍຄຳສັ່ງ for ທີ່ຢູ່ພາຍໃນຈະພິມເຄື່ອງໝາຍ
‘*’ ເທົ່າກັບຈຳນວນຄໍລ້ຳ (5 ເທື່ອ) ແລະຄຳສັ່ງ for ທີ່ຢູ່ພາຍນອກຈະທຳຄຳສັ່ງ
for ທີ່ຢູ່ພາຍໃນເທົ່າກັບຈຳນວນແຖວ (3 ເທື່ອ)
ໂປຣແກຣມຈະໄດ້ຜົນລັບດັ່ງຮູບທີ 3.12
ໂປຣແກຣມທີ
3.10 ຕົວຢ່າງການໃຊ້ຄຳສັ່ງ for ແບບຊ້ອນ
ຮູບທີ 3.12
ຜົນລັບທີ່ໄດ້ຈາກການລັນໂປຣແກຣມທີ 3.10
ໂປຣແກຣມທີ 3.11
ສະແດງຕົວຢ່າງໂປຣແກຣມທີ່ມີຄຳສັ່ງໂປຣແກຣມແບບຊ້ອນຫລາຍໆ
ຮູບແບບຢູ່ພາຍໃນ ໂປຣແກຣມນີ້ຈະສຸ່ມເລກຈຳນວນເຕັມມາສອງຄ່າ
ແລ້ວຈະພິມຕົວເລກສະເພາະ (Prime Number) ທີ່ຢູ່ລະຫວ່າເລກທັງສອງນັ້ນອອກມາ
ເຊິ່ງຮູບທີ 3.13 ສະແດງຕົວຢ່າງຜົນລັບທີ່ໄດ້ຈາກການລັນໂປຣແກຣມທີ 3.11
ຕົວຢ່າງທີ
3.11 ຕົວຢ່າງການໃຊ້ຄຳສັ່ງໂຄງສ້າງແບບຊ້ອນຫລາຍຮູບ
ຮູບທີ 3.14
ຜົນລັບທີ່ໄດ້ຈາກການລັນໂປຣແກຣມທີ 3.12
ໃນກໍລະນີທີ່ຕ້ອງການຫຍຸດການທຳງານຂອງຄຳສັ່ງໂຄງສ້າງຄວບຄຸມທີ່ຢູ່ພາຍນອກເຮົາຈະຕ້ອງກຳນົດ
label ຂຶ້ນມາເຕີມ ດັ່ງຕົວຢ່າງໃນໂປຣແກຣມທີ 3.13 ເຊິ່ງກຳນົດ label ທີ່ຊື່
outer ແລະມີຄຳສັ່ງ break outer; ເພື່ອທີ່ຈະເຮັດໃຫ້ໂປຣແກຣມຫຍຸດການທຳງານຂອງຄຳສັ່ງ
for ພາຍນອກ ໂດຍຈະໄດ້ຜົນລັບດັ່ງສະແດງໃນຮູບທີ 3.15
ໂປຣແກຣມທີ
3.13 ຕົງຢ່າງການໃຊ້ຄຳສັ່ງ break ແລະ label
|
ຮູບທີ 3.15
ຜົນລັບທີໄດ້ຈາການລັນໂປຣແກຣມທີ 3.13
ສະຫລຸບເນື້ອຫາຂອງບົດ
- ຄຳສັ່ງໂຄງສ້າງຄວບຄຸມ
ເປັນຄຳສັ່ງທີ່ໃຊ້ໃນການກຳນົດລຳດັບການທຳງານຂອງຄຳສັ່ງຕ່າງໆ
ໂດຍມີສາມຮູບແບບຄືໂຄງສ້າງແບບຕາມລຳດັບ ໂຄງສ້າງແບບເລືອກທຳ
ແລະໂຄງສ້າງແບບທຳຊ້ຳ
- ຄຳສັ່ງທີ່ເປັນຄຳສັ່ງຂອງໂຄງສ້າງແບບເລືອກທຳຄື
ຄຳສັ່ງ if, if..else ຫລື switch
- ຄຳສັ່ງ if..else
ແຕກຕ່າງຈາກຄຳສັ່ງ if..else ບ່ອນທີ່ຄຳສັ່ງ if
ຈະມີການທຳຄຳສັ່ງສຳຫລັບຄ່າເທັດຖ້ານິພົດຕັກກະສາດເປັນເທັດ
ສ່ວນຄຳສັ່ງ if ຈະບໍ່ມີການທຳຄຳສັ່ງໃດຖ້ານິພົດຕັກກະສາດເປັນເທັດ
- ຄຳສັ່ງ if ຫລື if..else
ສາມາດທີ່ຈະຊ້ອນຢູ່ຂ້າງໃນຄຳສັ່ງ if ຫລື if..else ອື່ນໄດ້
- ຄຳສັ່ງ switch
ຈະມີລັກສະນະໂຄງສ້າງການທຳງານຄ່າຍຄືເຄິ່ງກັບຄຳສັ່ງ if..else
if..else ..ແຕ່ຊະນິດຂໍ້ມູນຕົວແປທີ່ຈະນຳມາໃຊ້ກັບຄຳສັ່ງ switch ຈະຕ້ອງເປັນຊະນິດ
char, byte, short ຫລື int ເທົ່ານັ້ນ
- ຄຳສັ່ງທີ່ເປັນຄຳສັ່ງຂອງໂຄງສ້າງແບບທຳຊ້ຳຄື
ຄຳສັ່ງ while, do..while ຫລື for
- ຄຳສັ່ງ for
ແຕກຕ່າງຈາຄຳສັ່ງ do..while ບໍ່ທີ່ ຄຳສັ່ງ while
ຈະບໍ່ມີການທຳຊຸດຄຳສັ່ງເລີຍຖ້ນິພົດຕັກກະສາດເປັນເທັດ
ສ່ວນຄຳສັ່ງ do..while ຈະມີການທຳຊຸດຄຳສັ່ງໜຶ່ງເທື່ອຖ້ານິພົດຕັກກະສາດເປັນເທັດ
- ຄຳສັ່ງ for
ມີລັກສະນະການທຳງານທີຄືກັນກັບຄຳສັ່ງ while
ແຕ່ຈະມີການລວມຄຳສັ່ງກຳນົດຄ່າເລີ່ມຕົ້ນ
ນິພົດຕັກກະສາດແລະຄຳສັ່ງປ່ຽນແປງຄ່າໄວ້ຫລັງຄຳສັ່ງ for
- ຄຳສັ່ງ for
ຈະໃຊ້ກໍລະນີທີຮູ້ຈຳນວນເທື່ອໃນການທຳຊ້ຳທີ່ແນ່ນອນ ສ່ວນຄຳສັ່ງ
while ຫລື do..while
ນິຍົມໃຊ້ໃນກໍລະນີທີ່ບໍ່ຮູ້ຈຳນວນເທື່ອໃນການທຳຊ້ຳລ່ວງໜ້າ
- ຄຳສັ່ງໂຄງສ້າງທັງໝົດທີ່ກ່າວມາແລ້ວທາງເທິງນັ້ນ
ສາມາດນຳມາໃຊ້ລວມກັນເປັນລັກສະນະແບບຊ້ອນໄດ້ເຊັ່ນ ຄຳສັ່ງ switch ຢູ່ພາຍໃນຄຳສັ່ງ
while ຫລືຄຳສັ່ງ for ຢູພາຍໃນ for
ເຊິ່ງເອີ້ນໂຄງສ້າງໃນລັກສະນະນີວ່າໂຄງສ້າງແບບຊ້ອນ
- ຄຳສັ່ງ break
ຈະທຳໃຫ້ຫຍຸດສິ້ນສຸດການທຳງານຂອງໂຄງສ້າງແບບທຳຊ້ຳ ສ່ວນຄຳສັ່ງ
continue ຈະຂ້າມການທຳງານຄຳສັ່ງທີ່ເຫລືພາຍໃນບ໋ອກ { } ໂດຍໄປເລີ່ມການທຳຊ້ຳໃນຮອບຕໍ່ໄປໃໝ່
ไม่มีความคิดเห็น:
แสดงความคิดเห็น