csharp的goto语句与do-while语句
和C、C++一样,C#也支持goto语句。该语句是一种用于流程无条件转移的语句。使用该语句的前提是需要在程序中加入标签。
格式
goto <LableNmae>;
LabelName是标签名。程序执行到goto语句处便会忽略goto和LabelName之间的语句,而转向LabelName后面执行。
举例
static void Main(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();
}
static void Main(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代码块继续执行下一轮循环。