前两天做管理系统做的不是很好,为进步,我参考学习了一位学姐的代码。注意到学姐使用到了goto语句,我就把这一部分也看了一下。goto语句,也被称为无条件转移语句,在现在的代码中并不多见,主要是因为有的人认为goto语句会造成程序结构不清晰,但goto语句还是有自己独到的优点。
goto语句强制中断本语句后面的语句,适用范围仅限于一个函数内部不可以跳转到其他函数内。goto语句可以一次跳出许多层循环,方便检查一些错误,还可以对for循环中包含的if条件句加一个goto,方便我们对满足条件的部分进行及时的处理。goto语句的语法是这样的:1,设置一个后面带冒号的标签,标签的名字可以任意去取,冒号后面的是想要对语句进行的操作。loop:(----)2,goto loop
下面是几个我应用goto语句的简单实例: 例一:
从键盘上输入一些数字,求所有正数之和。当输入0或者负数时,程序结束。
#include <stdio.h>
int main()
{
float x;
float sum=0;
scanf("%f",&x); //输入第一个数
loop:
if(x>0){
sum+=x;
scanf("%f",&x);
goto loop;
}
printf("sum=%6.2f",sum);
return 0;
}
输入数据:1.1 4.2 7.3 8.4 -1
运行结果:21.00
例二
1-200之内的自然数求和 。
#include <stdio.h>
int main()
{
int n,sum=0;
n=1;
loop:
sum+=n;
n++;
if(n<=200){
goto loop;
}
printf("%d\n",sum);
return 0;
}
运行结果:20100
例三
打印出所有水仙花数。水仙花数是指一个三位数,其各位数字的立方和等于该数字本身。将三位数的个位,十位,百位数字分离出来,判断各位数字的立方和是否等于该数本身,若相等,输出该水仙花数。
#include <stdio.h>
int main()
{
int i,j,k,n;
printf("水仙花数是:");
n=100; //如果是for语句做这道题,这是表达式1
loop:
if(n<1000) //表达式2
{
i=n/100;
j=n/10%10;
k=n%10;
if(n==i*i*i+j*j*j+k*k*k)
printf("%-5d",n);
n++; //表达式3
goto loop;
}
}