跳转语句
goto 可以在函数内任意跳转,但是必须在函数内,出了函数就跳不了
它可能会破坏已经设计好的分支、循环语句,因此绝大多数公司禁止使用
但是它在驱动编程时特别适合用于处理异常
标签名:
...
goto 标签名;
练习1:不使用循环语句计算N的阶乘
输入样例: 5
得:1X2X3X4X5 = 120
int n = 0, ret = 1;
printf("请输入n的值:");
scanf("%d",&n);
loop:
ret *= n;
if(--n > 1) goto loop;
printf("ret=%d\n",ret);
break
1、配合switch使用,关闭执行开关
2、跳出当前次循环,只能跳一层
continue
结束本次循环,直接进入下一次循环
return
1、返回一个数据给函数的调用者
2、立即结束函数的执行
练习2:不使用循环语句,计算前n项的斐波那契数列
goto 方法:
int n = 0;
printf("输入n:");
scanf("%d",&n);
int f1 =0,f2 =1,f3 = 0;
loop:
f3 = f1+f2;
f1 = f2;
f2 = f3;
printf("%d\n",f1);
if(0 < --n) goto loop;
递归方法:
#include <stdio.h>
int fb (int n)
{
if(2 >= n)
{
return 1;
}
else
{
return fb(n-1)+fb(n-2);
}
}
int main(int argc,const char* argv[])
{
int n = 0;
printf("输入n:");
scanf("%d",&n);
printf("第%d项是%d",n,fb(n));
}