งบ c ++ โกโตะ
คำสั่งไปที่ช่วยให้การควบคุมโดยไม่มีเงื่อนไขที่จะเป็นคำสั่งที่มีป้ายกำกับภายในฟังก์ชั่นเดียวกัน
หมายเหตุ: ในการเขียนโปรแกรมภาษาใด ๆ ที่ไม่แนะนำให้ใช้งบโกโตะเพราะมันจะทำให้มันยากที่จะติดตามการควบคุมการไหลของโปรแกรมที่ทำให้โปรแกรมยากที่จะเข้าใจและยากที่จะแก้ไข โปรแกรมใด ๆ ที่ใช้งบไปที่สามารถเขียนเป็นถ้อยคำที่ไม่จำเป็นต้องใช้งบโกโตะ
ไวยากรณ์
คำสั่งไปที่ใน C ++ ไวยากรณ์:
goto label; .. . label: statement;
คำสั่งระบุการติดป้ายชื่อที่นี่ได้รับการยอมรับฉลากสามารถเป็นอะไรก็ได้อื่น ๆ กว่า C ++ คำหลักในข้อความธรรมดาคำสั่งที่มีป้ายกำกับสามารถเป็นคำสั่งใด ๆ ที่วางไว้ในตัวบ่งชี้และลำไส้ใหญ่ (:) ที่อยู่เบื้องหลัง
แผนภูมิการไหล
ตัวอย่าง
#include <iostream> using namespace std; int main () { // 局部变量声明 int a = 10; // do 循环执行 LOOP:do { if( a == 15) { // 跳过迭代 a = a + 1; goto LOOP; } cout << "a 的值:" << a << endl; a = a + 1; }while( a < 20 ); return 0; }
เมื่อโค้ดข้างต้นจะรวบรวมและดำเนินการก็จะก่อให้เกิดผลลัพธ์ต่อไปนี้:
a 的值: 10 a 的值: 11 a 的值: 12 a 的值: 13 a 的值: 14 a 的值: 16 a 的值: 17 a 的值: 18 a 的值: 19
คำสั่ง Goto เป็นบทบาทที่ดีคือการออกจากงานประจำที่ซ้อนกันอย่างลึกซึ้ง ยกตัวอย่างเช่นพิจารณาส่วนรหัสต่อไปนี้:
for(...) { for(...) { while(...) { if(...) goto stop; . . . } } } stop: cout << "Error in program.\n";
การกำจัดของโกโตะจะนำไปสู่การทดสอบเพิ่มเติมบางอย่างจะดำเนินการคำสั่งแบ่งง่าย ๆ ที่นี่ไม่ได้มีบทบาทสำคัญเพราะมันทำให้โปรแกรมที่จะออกจากวงในสุด