C++ goto 語句
C++ goto 語句
goto 語句允許把控制無條件轉移到同一函數內的被標記的語句。
注意:在任何編程語言中,都不建議使用 goto 語句。因為它使得程序的控制流難以跟蹤,使程序難以理解和難以修改。任何使用 goto 語句的程序可以改寫成不需要使用 goto 語句的寫法。
1. 語法
C++ 中 goto 語句的語法:
goto label; .. label: statement;
在這里,label 是識別被標記語句的標識符,可以是任何除 C++ 關鍵字以外的純文本。標記語句可以是任何語句,放置在標識符和冒號(:)后邊。
2. 流程圖
3. 實例
#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";
消除 goto 會導致一些額外的測試被執行。一個簡單的 break 語句在這里不會起到作用,因為它只會使程序退出最內層循環。
相關文章