前两天做管理系统做的不是很好,为进步,我参考学习了一位学姐的代码。注意到学姐使用到了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语句做这道题,这是表达式1loop: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;}}