我感觉 for循环就是由if选择结构和顺序结构组成的。比如
for(int i=0;i<10;i++)
这个可以改写成
int i=0;
if(i<10)
{操作
i++}
把这个封装成一个函数,执行多次就好了。循环结构应该有
但是,为什么说C语言结构三大部分 有循环结构呢?我想,循环结构应该有他自己特别厉害的地方,和顺序结构选择结构完全不同的地方的。就是不清楚不同的地方在哪里。希望大佬们帮忙解疑
我感觉 for循环就是由if选择结构和顺序结构组成的。比如
for(int i=0;i<10;i++)
这个可以改写成
int i=0;
if(i<10)
{操作
i++}
把这个封装成一个函数,执行多次就好了。循环结构应该有
但是,为什么说C语言结构三大部分 有循环结构呢?我想,循环结构应该有他自己特别厉害的地方,和顺序结构选择结构完全不同的地方的。就是不清楚不同的地方在哪里。希望大佬们帮忙解疑
光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。