早期版本的 BASIC 和 FORTRAN 所依賴的 goto 語句,在 C 中仍然可用,但是沒有 goto 語句,C 語言也能運作良好。
goto part;
...
part: prinf("...\n");
使用 goto 的常見情況以及如何用 C 替代
處理包含多條語句的 if 語句
if (size > 12)
goto a;
goto b;
a: cost = cost * 1.05;
flag = 2;
b: bill = cost * flag;
對于以前的 BASIC 和 FORTRAN,隻有跟在 if 條件後面的一條語句才屬于 if,不能使用塊或複合語句。
if (size > 12)
{
cost = cost * 1.05;
flag = 2;
}
bill = cost * flag;
二選一
if (ibex > 14)
goto a;
sheds = 2;
goto b;
a: sheds = 3;
b: help = 2 * sheds;
if (ibex > 14)
sheds = 3;
else
sheds = 2;
help = 2 * sheds;
建立不确定循環
readin:scanf("%d", &score);
if (score < 0)
goto stage2;
lots of statements
goto redin;
stage2: more stuff;
scanf("%d", &score);
while (score <= 0)
{
lots of statements
scanf("%d", &score);
}
跳轉至循環末尾,并開始下一輪疊代
C 使用 continue 語句代替。
跳出循環
C 語言使用 break 語句,實際上,break 和 continue 是 goto 的特殊形式。使用 break 和 continue 的好處是:其名稱已經表明它們的用法,而且這些語句不使用标簽,是以不用擔心把标簽放錯位置導緻的危險。