qq_43412960
2019-10-23 16:38
采纳率: 79.1%
浏览 786

这是一个关于C语言的if结构和for循环问题

我感觉 for循环就是由if选择结构和顺序结构组成的。比如

for(int i=0;i<10;i++)

这个可以改写成

int i=0;
if(i<10)
{操作
i++}

把这个封装成一个函数,执行多次就好了。循环结构应该有
但是,为什么说C语言结构三大部分 有循环结构呢?我想,循环结构应该有他自己特别厉害的地方,和顺序结构选择结构完全不同的地方的。就是不清楚不同的地方在哪里。希望大佬们帮忙解疑

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

10条回答 默认 最新

  • blownewbee 2019-10-23 17:25
    已采纳

    光if语句构成不了循环。
    把这个封装成一个函数,执行多次就好了,那么你怎么执行多次?两种写法
    一个是直接写n行语句,那么问题在于,你的程序不能重复比你写的行多一次。
    一个还是得用循环。
    循环的本质是一个向前的跳转:

    sum = 0;
    i = 0;
    a:
    i = i + 1;
    sum = sum + i;
    if (i != 101) goto a;
    printf("%d", sum);

    你注意看,这里要循环起来,关键在于要有一个向前的跳转,而if只能向后跳转。
    不使用循环语句,就必须使用另外一种方式来拥有这种机制。
    一个办法就是上面写的,用goto

    还有一个办法利用函数调用(递归)返回到执行开始的地方
    比如
    int foo(int i)
    {
    if (i == 1) return 1;
    return foo(i - 1) + i;
    }

    如果一种语言没有向前跳转的机制,它就不能执行循环,它因此就是非图灵机完备的语言,比如sql。

    点赞 打赏 评论
  • 杰米尼123 2019-10-23 16:47

    你那个函数形式还是需要进行循环判断的呀,单独一个函数是无法执行循环的,还是需要一个计数器进行控制循环执行函数

    点赞 打赏 评论
  • 地幔中的WA 2019-10-23 16:50

    break和continue实现就有点难,还有,它没法做到循环的效果

    点赞 打赏 评论
  • infoworld 2019-10-23 16:55

    循环语句就是需要在循环语句的范围{}内执行语句块,达到循环要求的次数。
    循环语句的for(int i =0;i< X;++i)里的X是可以变量来的, 用if语句是实现不了变量的,因为你不知道需要调用几次函数.

    点赞 打赏 评论
  • ccaa123456789 2019-10-23 17:00

    我同意一楼的说法,还需要一个计数器进行控制循环执行函数

    点赞 打赏 评论
  • 25号同学 2019-10-23 17:06

    你这样搞是要用递归吗,数据少的话,循环和递归用哪个都可,数据大的话,还是循环好使,毕竟递归消耗内存大

    点赞 打赏 评论
  • zsy_lucky 2019-10-23 17:09

    用循环比较方便,在中断给程序做处理的时候用起来也方便,不可能一次一次的手动给他定义吧

    点赞 打赏 评论
  • qtchen_1988 2019-10-23 17:14

    代码的简洁性,你可以使用顺序结构跟条件结构来实现循环结构。但是比起直接用循环代码要繁琐的多。

    点赞 打赏 评论
  • @班 2019-10-23 17:26

    循环结构最厉害的地方就在于,它可以根据需求重复相同或是有规律的事情。
    它虽然也是需要进行判断,但是循环结构是为了方便我们的书写,减少代码量。
    就按照你说的这方式,但如果需要调用一万次呢,要调用十万次呢,难道就得要写一万次甚至是十万次调用?
    所以,循环结构和选择结构的最大区别就在于,一个可以执行一次,如果执行多次那么需要写大量的重复代码;
    一个是可以根据需求执行多次,且不用写大量的重复代码

    点赞 打赏 评论
  • zxm15121122309 2019-10-23 17:43

    可以批量处理需相同操作的计算数

    点赞 打赏 评论

相关推荐 更多相似问题