c語言中goto使用注意事項
阿新 • • 發佈:2019-02-17
在c語言中可以用goto來處理錯誤,但是要特別注意的是goto會順序執行下去,所以在goto中如果沒有分支或retun的話可能會出錯
#include<stdio.h>
//氣泡排序,把陣列中的元素從大到小或從小到大列出
int main(void)
{
int arr[10]={8, 1, 6, 7, 5, 0, 3, 2, 4, 9};
int i, j, temp, count = 0;
goto out;
//goto out2;
out1:
for(i = 0; i<9; i++) //控制排序的趟數
{
for (j=0; j<9-i; j++)
{
if(arr[j] > arr[j+1]) //控制相比較的數
{
temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
for(i = 0; i<10; i++)
{
printf("%d ",arr[i]);
}
printf ("\n");
count++;
if (count == 10)
//break;
return 0;
goto out1;
out:
printf("out\n");
//return 0;
out2:
printf("out2\n");
return 0;
}
**比如在上面的程式碼中如果out中沒有return的話會順序執行到out2
而且中間部分的程式碼不會被執行,goto out 後會直接順序執行然後返回結束程式**
//goto out;
**如果我們注掉goto out 程式會在goto out1形成這部分程式碼形成迴圈知道條件滿足退出,但是在goto 中不能使用break 和 conution**