C语言程序-循环结构(2)

目录

1、break与continue语句

2、goto语句

3、exit()函数

 

1、break与continue语句

有时,需要在循环体中提前跳出循环,或满足某种条件下,不执行循环中剩下的语句而立即从头开始新的一轮循环,这时就要用到break和continue语句。

1、break语句

在switch语句中break的作用为在case子句执行完后,通过break语句是控制立即台哦出switch结构。在循环中,break语句作用在于在循环体中测试到应立即结束循环时,使控制跳出循环结构,转而执行循环语句后面的第一条语句。

示例:

while(表达式1)
{...
if(表达式2) break;//满足条件后跳转到循环后的第一条语句
...
}

使用示例:将用户输入的小写字母转换成大写字母,直到输入非小写字母字符:

#include <stdio.h>
int main()
{char c;
while(1)
{c=getchar();
if(c>='a'&&c<='z')
putchar(c-'a'+'A');
else
break;}
return 0;
}

在使用break语句时,注意以下几点:

(1)break语句只可用于switch、while、do-while、for语句中。

(2)在嵌套循环的情况下,break只能终止且跳出包含它最近一层的循环体。

如:

for(...)
{
while(...)
{...
if(...) break;
...}
...  //if条件成立后跳转到这里
}

(3)在嵌套循环下,若想让break跳出最外层的循环体。可通过设立一标志变量tag,然后在每层循环后加上一条语句:if(tag) break;其值为1表示跳出循环体,为0不输出。

如:

int tag=0;
for(...)
{
while(...)
{..
if(...){tag=1;break}  //跳出当层循环
...}
if(tag) break; //跳出当层循环
...
}
...  //跳转到此

2、continue语句

与break不同在于,在循环体中它只会跳过continue语句后面循环体中尚未执行的语句,开始下一次循环,即仅结束此次循环的执行,并不终止整个循环的执行。

示例如下:

#include <stdio.h>
int main()
{int a,i,num=0.
float sum=0;
for(i=0;i<10;i++)
{ scanf("%d",&a);  //输入一整数
if(a<=0) continue; //如果为负,则输入下一个整数
num++;             //正数个数+1
sum+=a;            //整数和累加
}printf("%d plus integer's sum:%.0f\n",num,sum);
printf("average value:%.2f\n", sum/num);
return 0;
}

其他与break类似。

2、goto语句

goto语句的作用是在不需要任何提交的情况下直接使程序调转到该语句标号所标识的语句去执行。

如:这是用来求1~100的累计和的程序,goto与条件语句配合使用构成了循环。

#include <stdio.h>
int main()
{int i=1,sum=0;
loop:sum+=i++;
if(i<=100) //如果i小于或等于100
goto loop; //转到标号为loop的语句去执行
printf("sum=%d\n",sum);
return 0;
}

3、exit()函数

exit()函数的作用是终止整个程序的执行,强制返回到操作系统。调用该函数一般要嵌入头文件stdlib.h。

使用示例如下:输入三角形的边长,求三角形的面积。

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{float a,b,c;
float s,area;
printf("input the length of three edges of triangle:");
scanf("%f%f%f",&a,&b,&c);
if(a<=0||b<=0||c<=0)
{printf("the length of three edges of triangle is error!\n");
exit(-1);
}
	s=(a+b+c)/2;
	s=s*(s-a)*(s-b)*(s-b);
	if(s<0)
	{printf("the length of three edges of triangle is error!\n");
	exit(-1);
	}
	area=(float)sqrt(s);
	printf("area=%.2f\n",area);
	return 0;
}

运行结果: 

input the length of three edges of triangle:3 4 5

area=6.00

input the length of three edges of triangle:3 -4 5

the length of three edges of triangle is error!

因为操作中存在求平方根的操作,这要用到数学库函数sqrt。sqrt函数带有一个参数,它的功能是返回参数的平方根。 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值