c语言中goto使用注意事项

在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**
  • 7
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值