ຄຳສັ່ງ break ແລະ continue ECMAScript

break ແລະ continue 语句ຈະສະໜອງການຄວຍຄວາມຄິດຂອງວົງກິກຫຼາຍກວ່າ.

ຄວາມແຕກຕ່າງລະຫວ່າງ break ແລະ continue

ຄຳສັ່ງ break ຈະຫຼົບຫຼີກວົງກິກທັນທີ, ແລະຫຼຸດການດຳເນີນຄຳສັ່ງອີກຄັ້ງ.

ຄຳສັ່ງ continue ຈະຫຼົບຫຼີກວົງກິກປະຈຳອາກາດ, ພ້ອມທັງຈະສາມາດດຳເນີນວົງກິກປະຈຳອາກາດອີກຄັ້ງ.

ຕົວຢ່າງ:

var iNum = 0;
for (var i=1; i<10; i++) {
  if (i % 5 == 0) {
    break;
  }
  iNum++;
}
alert(iNum);	//ສະແດງ "4"

ໃນວິກິດຈະກຳດັ່ງກ່າວ, for 循ອຍຈະການສາຍອອກຈາກ 1 ຫາ 10, i. ໃນຫຼັກວົງກິກ, if ຈະກວດກາຄຸນນະພາບ i ສາມາດຫຼົບຫຼີກ 5. ຖ້າສາມາດ, ຈະດຳເນີນຄຳສັ່ງ break, alert ຈະສະແດງ "4" ເຊິ່ງເປັນຈຳນວນການດຳເນີນວົງກິກກ່ອນຫຼົບຫຼີກວົງກິກ.

ຖ້າໃຊ້ຄຳສັ່ງ continue ແທນຄຳສັ່ງ break ໃນຕົວຢ່າງນີ້, ຜົນຈະແຕກຕ່າງກັນ:

var iNum = 0;
for (var i=1; i<10; i++) {
  if (i % 5 == 0) {
    continue;
  }
  iNum++;
}
alert(iNum);	//ສະແດງ "8"

ບ່ອນນີ້ alert ຈະສະແດງ "8" ເຊິ່ງເປັນຈຳນວນການດຳເນີນວົງກິກ. ຈຳນວນການດຳເນີນວົງກິກທັງໝົດຈະຢູ່ 9, ແຕ່ເວລາທີ່ i ມີຄຸນນະພາບ 5, ຈະດຳເນີນຄຳສັ່ງ continue, ທີ່ຈະສາມາດຫຼົບຫຼີກຄຳສັ່ງ iNum++, ແລະກັບຄືນຫາຫຼັກວົງກິກ.

与有标签的语句一起使用

break 语句和 continue 语句都可以与有标签的语句联合使用,返回代码中的特定位置。

ສະເພາະ, ເວລາທີ່ວົງວາງພາຍໃນວົງວາງ, ຈະເຮັດແນວນັ້ນ, ௔ັງວ່າ:

var iNum = 0;
outermost:
for (var i=0; i<10; i++) {
  for (var j=0; j<10; j++) {
    if (i == 5 && j == 5) {
    break outermost;
  }
  iNum++;
  }
}
alert(iNum);	//ການອອກມາ "55"

ໃນບັນທຶກຄັ້ງກ່ອນ, labeled outermost ສະແດງໃຫ້ເຫັນວ່າ for ທີ່ເກີດຂຶ້ນທຳອິດ. ໃນການປະຕິບັດຢ່າງທຳມະດາ, for ທີ່ໃຊ້ມາການດຳເນີນການ 10 ຄັ້ງ, ເພື່ອມີ iNum++ ປະຕິບັດ 100 ຄັ້ງ, ເມື່ອປະຕິບັດສິ້ນສຸດ iNum ຄວນຈະມີຄຸນຄ່າ 100. ບັນດາ break statement ທີ່ມີສຳຄັນທີ່ກັບ labeled statement ທີ່ກ່ຽວກັບ break statement ຈະພຽງແຕ່ຫຼຸດການດຳເນີນວົງວາງ for ກາງ (ທີ່ໃຊ້ j), ບໍ່ພຽງແຕ່ຫຼຸດການດຳເນີນວົງວາງ for ກາງ (ທີ່ໃຊ້ i). ເນື່ອງຈາກນັ້ນ, iNum ສຸດທ້າຍຈະມີຄຸນຄ່າ 55, ຄວາມຄິດວ່າເວລາທີ່ i ແລະ j ທີ່ມີຄຸນຄ່າ 5, ວົງວາງຈະຢຸດຕິ.

ສາມາດໃຊ້ຄຳສັ່ງ continue ຢ່າງດຽວກັນ:

var iNum = 0;
outermost:
for (var i=0; i<10; i++) {
  for (var j=0; j<10; j++) {
    if (i == 5 && j == 5) {
    continue outermost;
  }
  iNum++;
  }
}
alert(iNum);	//ການອອກມາ "95"

ໃນບັນທຶກຄັ້ງກ່ອນ, ຄຳສັ່ງ continue ຈະບັງຄັບການສືບຕໍ່ການດຳເນີນການວົງວາງ, ບໍ່ພຽງແຕ່ວົງວາງກາງ, ຍັງມີວົງວາງນອກນັ້ນ. ເວລາທີ່ j ທີ່ 5, ຄວາມຄິດວ່າວົງວາງກາງຈະຫຼຸດຕົວ 5 ການລອດ, ເຮັດໃຫ້ iNum ມີຄຸນຄ່າ 95.

ຄຳແນະນຳ:ສາມາດເຫັນວ່າຄຳສັ່ງ labeled statement ທີ່ກໍາລັງມັກກັບ break ແລະ continue ແມ່ນມີພະລັງສຳຄັນຫຼາຍ, ແຕ່ການໃຊ້ຫຼາຍກວ່າຈະເຮັດໃຫ້ການທົດສອບລະບົບປອດໄພຫຼາຍ. ຕ້ອງການຮັບປະກັນວ່າຄຳສັ່ງ labeled ແມ່ນມີຄວາມອະທິບາຍ, ແລະບໍ່ມີການວົງວາງສອງຊັ້ນຫຼາຍ.

ຄຳແນະນຳ:ກະຕຸ້ມວ່າແມ່ນຫຍັງຄຳສັ່ງ labeled statement, ກະຕຸ້ມວ່າການອ່ານ ຄຳສັ່ງການກໍ່ສ້າງ ECMAScript ບົດອອກນີ້