之前只是听说过goto语句,据说它不被推荐,因为丹尼斯里奇说它"易被滥用"。今天才知道goto语句怎么用。goto语句最早是衍生于Fortran语言和Basic语言的,它由两部分构成:goto和标签名
#include<iostream>
using namespace std;
int main()
{
goto part;
part:cout << "这是我的第一个goto语句!!!"<< endl;
cout <<"dghtql";
cout << "234";
goto p;
p:cout << endl;
}
输出:
cd "d:\程序\随笔程序\2020年1月\" && g++ goto.cpp -o goto && "d:\程序\随笔程序\2020年1月\"goto
这是我的第一个goto语句!!!
dghtql234
[Done] exited with code=0 in 3.881 seconds
可以看到,part之后所有p标签之前的语句都解释为part里应该执行的语句!!!
goto语句用于循环不仅麻烦还会容易造成错误,但是有一种情况是适合使用goto语句的,甚至还能够简化编程。就是从一组循环嵌套语句中跳出并执行循环中没有的语句(break语句只能跳出当前循环,并且什么也做不了)
#include<iostream>
using namespace std;
int main()
{
char logo[3][15] = {"dghtql","dgxtql","dgh&dgxtql"};
for(int i = 0;i < 3;i++)
for(int j = 0;logo[i][j] != '\0';j++)
{
if(logo[i][j] == '&')
goto help;
else
{
cout << logo[i][j];
}
}
help : cout << "\n&是我们的意思";
}
输出:
[Running] cd "d:\程序\随笔程序\2020年1月\" && g++ gotoxunhuan1.cpp -o gotoxunhuan1 && "d:\程序\随笔程序\2020年1月\"gotoxunhuan1
dghtqldgxtqldgh
&是我们的意思
[Done] exited with code=0 in 3.336 seconds
因为我不知道怎样确定goto的part的范围,因此我把help放在了main函数的最后面。