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