今天来讲一讲goto。
goto是一种无条件跳转语句,常和if搭配使用,
直接上菜:
#include<stdio.h>
int main (void){
int n;
pos_1:
printf("请输入一个正整数:");
scanf("%d",&n);
if(n<0)
{
printf("输入错误!\n");
goto pos_1;
}
printf("成功输入正整数:%d\n",n);
return 0;
}
语句标识:语句;//例子中语句标识是pos_1//感觉这个语句“;”结束的不是明显//重要记住
语句标识: (例子:pos_1:)。
goto 语句标识;//例子中是pos_1 //语句标号//语句标识
程序分析:
当程序遇到goto pos_1;则跳到 pos_1:语句标识处。
假设某次运行,依次输入 -2、-6、3 等数字,其运行结果如下:
请输人一个正整数:-2
输入错误!
请输入一个正整数:-6
输入错误!
请输入一个正整数:3
成功输入正整数:3
注意:使用 goto 语句可能会造成程序层次不清晰,可读性差,故在实际编程中,应尽量少使用或避免使用 goto 语句。
应用补充
1.goto out;
//goto out; 类似一个特例
例程:
#include <stdio.h>
int main() //求前10奇数和
{
int i;
int sum = 0;
for (i = 1; i <= 10; i++)
{
if (i > 10)
goto out; //这里条件满足就直接跳到out
if (i % 2 == 0)
continue;
sum += i;
}
out: //直接跳到这里然后输出
printf("前10奇数和为%d", sum);
return 0;
}
goto out; //out是一个语句标识
out://注意“:”这个结尾的,out也是一个语句标识。标识名可以自取。
参考总结: