csharp的goto语句与do-while语句
和C、C++一样,C#也支持goto语句。该语句是一种用于流程无条件转移的语句。使用该语句的前提是需要在程序中加入标签。
格式
goto<LableNmae>;
LabelName是标签名。程序执行到goto语句处便会忽略goto和LabelName之间的语句,而转向LabelName后面执行。
举例
staticvoidMain(string[] args){
Console.WriteLine("请选择你要吃的菜品");
Console.WriteLine("1.牛肉面");
Console.WriteLine("2.臊面");
Console.WriteLine("3.牛肉小饭");
Label:
Console.Write("请输入你的选择:");//读取输入的字符string chioce=Console.ReadLine();//判断输入switch(chioce){//switch分支语句case"1":
Console.WriteLine("您选择的菜品是:1.牛肉面");break;case"2":
Console.WriteLine("您选择的菜品是:2.臊面");break;case"3":
Console.WriteLine("您选择的菜品是:3.牛肉小饭");break;default:
Consloe.WriteLine("不好意思~只有这三个菜哦")goto Label;break;}
Console.PeadKey();}
staticvoidMain(string[] args){
Console.WriteLine("请选择你要吃的菜品");
Console.WriteLine("1.牛肉面");
Console.WriteLine("2.臊面");
Console.WriteLine("3.牛肉小饭");do{
flag=false;
Console.Write("请输入你的选择:");//读取输入的字符string chioce=Console.ReadLine();//判断输入switch(chioce){//switch分支语句case"1":
Console.WriteLine("您选择的菜品是:1.牛肉面");break;case"2":
Console.WriteLine("您选择的菜品是:2.臊面");break;case"3":
Console.WriteLine("您选择的菜品是:3.牛肉小饭");break;default:
Consloe.WriteLine("不好意思~只有这三个菜哦")
flag=true;break;}while(flag);
Console.PeadKey();}}}
以上程序使用do-while语句替换了goto语句。实现了与使用goto语句相同的功能。
定义了一个布尔变量,用于测试循环是否结束。do代码块中的如下语句
flag=flase;
flag设置为“false”。这样当代码没有执行到default代码块时,程序跳出switch语句便执行while判断,此时flag为“false”则跳出do-while循环。如果程序执行到default代码块,便执行
flag=true;
该语句将flag的值改变为“true”。这样在做while判断时就会继续返回do代码块继续执行下一轮循环。