在本文中,您將了解goto語(yǔ)句,它是如何工作的,以及為什么應(yīng)該避免它。
在C ++編程中,goto語(yǔ)句用于通過(guò)將控制權(quán)轉(zhuǎn)移到程序的其他部分來(lái)更改程序執(zhí)行的正常順序。
goto label; ... .. ... ... .. ... ... .. ... label: statement; ... .. ...
在上面的語(yǔ)法中,label是標(biāo)識(shí)符。當(dāng)遇到goto label;,程序的指定跳轉(zhuǎn)到label:并執(zhí)行它下面的代碼。
//此程序計(jì)算用戶輸入的數(shù)字的平均值。 //如果用戶輸入負(fù)數(shù),它將忽略該數(shù)字,并且 //計(jì)算之前輸入的數(shù)字的平均值。 # include <iostream> using namespace std; int main() { float num, average, sum = 0.0; int i, n; cout << "最大輸入數(shù): "; cin >> n; for(i = 1; i <= n; ++i) { cout << "輸入數(shù)字 n" << i << ": "; cin >> num; if(num < 0.0) { // 控制程序跳轉(zhuǎn)到j(luò)ump goto jump; } sum += num; } jump: average = sum / (i - 1); cout << "\n平均數(shù) = " << average; return 0; }
輸出結(jié)果
最大輸入數(shù): 10 輸入數(shù)字 n1: 2.3 輸入數(shù)字 n2: 5.6 輸入數(shù)字 n3: -5.6 平均數(shù) = 3.95
您可以編寫任何c++程序,而不需要使用goto語(yǔ)句,因此不使用goto語(yǔ)句通常被認(rèn)為是一個(gè)好主意。
goto語(yǔ)句可以跳轉(zhuǎn)到程序的任何部分,但會(huì)使程序的邏輯變得復(fù)雜而混亂。
在現(xiàn)代編程中,goto語(yǔ)句被認(rèn)為是有害的構(gòu)造和不良的編程習(xí)慣。
在大多數(shù)C ++程序中,可以使用break和continue語(yǔ)句代替goto 語(yǔ)句。