
跳转类语句共有四条这种语句,goto、continue、break和return。
1.goto 语句
goto <语句标号>
如: goto finish;
当执行到goto语句时,就转移到语句标号所标识的位置执行。
goto语句中的<语句标号>所标识的位置必须与goto语句在同一函数体内。
void func(double x)
{
double y;
if(x<0) {y=3*x*x-1; goto finish;}
if(x>=0 && x<=10) {y=exp(x)/3+2; goto finish;}
y=5*sqrt(x)-2*x+1;
finish:
printf("x=%Lf\n",x);
printf("y=%Lf\n",y);
}
2.continue语句
只能使用在任一种循环语句内,执行时将结束循环体的一次执行。
while(1) {
scanf("%d",&x);
if(x<=0) break;
if(x<60) continue;
c++;//25 62 78 30 86 -5 c的值为3
}
3.break语句
应用范围:使用在各种循环语句的循环体中和switch语句的语句体中。
功能:结束整个循环语句或开关语句的执行过程。
例如:
#include<stdio.h>
void main()
{
int i,s=0;
for(i=1; i<=10; i++) {
s+=i;//s=1,3,6,10,15,21
if(s>15) break;
}
printf("%d %d\n",i,s);//6 21
}
又如:
#include<stdio.h>
void main()
{
int i=3,s=0;
switch(i) {
case 2 : s+=i;
case 3 : s+=i*i;
case 4 : s+=i+5; break;
default: s+=6;
}
printf("s=%d\n",s);//s=17 若取消break 则s=23
}
4.return语句
语句格式: return [表达式];
功能:结束整个函数的执行过程,并计算出表达式的值,把这个值返回到调用该函数的位置。对于void函数,使用return语句时,将省略其后的表达式,并且函数定义中可以不使用return语句,当执行到右花括号,将结束函数执行。但对于不是void类型的函数定义,必须在函数体中至少使用一条return语句,用来返回一个值。
#include<stdio.h>
int TwoAdd(int a, int b) {return a+b;}
void TwoMult(int x, int y) {printf("%d*%d=%d\n",x,y,x*y);}
void main()
{
int x=15,y=20;
int z=TwoAdd(x,y);//z的值为35
printf("%d+%d=%d\n",x,y,z);//输出15+20=35
TwoMult(x,y);//输出15*20=300
}