ยินดีต้อนรับเพื่อนๆ เอกคอมพิวเตอร์ศึกษา และผู้ที่เวะเข้ามาชมทุกคนคับ ที่เข้ามาเยี่ยมชมเว็บบร็อกของผม ยินดีต้อนรับเข้าสู้เว็บไซต์http://teenemerux.blogspot.com

วันจันทร์ที่ 13 กุมภาพันธ์ พ.ศ. 2555

คำสั่งที่สั่งให้ไปทำงานตามจุดที่กำหนดไว้ (goto statements)

       คำสั่งที่สั่งให้ไปทำงานตามจุดที่กำหนดไว้ ส่วนมากเราไม่นิยมใช้กันเพราะทำให้การตรวจสอบการทำงานของโปรแกรมทำได้ยากขึ้น เนื่องจากการใช้คำสั่ง goto และ label ทำให้การทำงานของโปรแกรมมีลักษณะกระโดดไปทำงานตามจุดที่กำหนดไว้ ทำให้การทำงานของโปรแกรมไม่ได้ทำงานจากด้านบนลงมาด้านล่างอาจเกิดความสับสนในการทำงานของโปรแกรมได้

4.3.1 คำสั่ง goto และ label
goto เป็นคำสั่งที่สั่งให้ไปทำงาน ณ จุดที่เรากำหนด โดยจะต้องตั้งเป็นชื่อ label ไว้

รูปแบบการใช้คำสั่ง goto และ label
goto labelname;
และ
labelname:


โดยที่
labelname คือ ชื่อ label ที่ตั้งขึ้นเพื่อให้โปรแกรมทำงาน
หมายเหตุ
ควรหลีกเลี่ยงการใช้คำสั่ง goto และ label เพราะจะทำให้โปรแกรมย้ายไปทำงานในตำแหน่งต่าง ๆ ทำให้เกิดความสับสนในการตรวจสอบการทำงานของโปรแกรมได้

เพื่อความเข้าใจการใช้คำสั่ง goto และ label มากยิ่งขึ้นควรศึกษาโปรแกรมตัวอย่างต่อไปนี้

โปรแกรมตัวอย่างที่ 4.19 แสดงการใช้คำสั่ง goto และ label เพื่อกำหนดให้โปรแกรมทำงานตามชื่อ label ที่กำหนด

/* gotolabe.c */
#include<stdio.h> /* บรรทัดที่ 1 */
#include<conio.h> /* บรรทัดที่ 2 */
void main(void) /* บรรทัดที่ 3 */
{ /* บรรทัดที่ 4 */
int i, j, k; /* บรรทัดที่ 5 */
j = i = 2 ; /* บรรทัดที่ 6 */
clrscr( ); /* บรรทัดที่ 7 */
loop: k = i*j; /* บรรทัดที่ 8 */
printf("%d\t %d\t %d\n", j, i++, k); /* บรรทัดที่ 9 */
if (i<7) /* บรรทัดที่ 10 */
goto loop; /* บรรทัดที่ 11 */
else /* บรรทัดที่ 12 */
goto quit; /* บรรทัดที่ 13 */
quit: printf("\nThank You !"); /* บรรทัดที่ 14 */
printf("\n\nPress any key back to program..."); /* บรรทัดที่ 15 */
getch(); /* บรรทัดที่ 16 */
} /* end main */ /* บรรทัดที่ 17 */


ผลลัพธ์ที่ได้จากโปรแกรม


แผนผังลำดับงาน: จอภาพ: 2 2 4  2        3 6  2 4 8  2 5 10  2 6 12    Thank You !    Press any key back to program…


คำอธิบายโปรแกรม
จากโปรแกรมตัวอย่างที่ 4.19 สามารถอธิบายการทำงานของโปรแกรมที่สำคัญ ๆ ได้ดังนี้


บรรทัดที่ 8 และ 14 คำสั่ง loop : และ quit : คือ การกำหนดชื่อ label ชื่อว่า loop และ quit ตามลำดับ
บรรทัดที่ 11 คำสั่ง goto loop; เพื่อกำหนดให้โปรแกรมไปทำงานยัง label ที่ชื่อว่า loop ในกรณีที่คำสั่ง if (i < 7) ในบรรทัดที่ 10 เป็นจริง แต่ถ้าเป็นเท็จ จะไปทำคำสั่งบรรทัดที่ 12 และ 13
บรรทัดที่ 12 และ 13 ในกรณีที่คำสั่ง if บรรทัดที่ 10 เป็นเท็จจะมาทำงานที่คำสั่งบรรทัดที่ 13 คือ goto quit; เป็นการกำหนดให้โปรแกรมไปทำงานยัง label ที่ชื่อว่า quit
บรรทัดที่ 14 คำสั่ง quit : printf (“ \n Thank You ! “); คือ label ที่มีชื่อ quit ซึ่ง label นี้จะพิมพ์คำว่า Thank You ! แสดงที่จอภาพ
บรรทัดที่ 15 และ 16 ภายหลังจากทำงานข้างต้นที่กล่าวมาแล้ว โปรแกรมจะพิมพ์ข้อความให้กดคีย์ใด ๆ เพื่อกลับสู่โปรแกรม สุดท้ายจะหยุดรอรับค่าใด ๆ จากคีย์บอร์ด เช่น ถ้ากด enter ก็จะกลับสู่โปรแกรม ตามลำดับ

ไม่มีความคิดเห็น:

แสดงความคิดเห็น

มุมแซตมันๆ คับผม