C# goto命令没有';行不通
当我在没有goto命令的情况下编写代码时,它可以工作,但是当我添加C# goto命令没有';行不通,c#,switch-statement,goto,C#,Switch Statement,Goto,当我在没有goto命令的情况下编写代码时,它可以工作,但是当我添加:Start时,它会得到一个8错误 以下是相关代码: :Start Console.Write("Do you want the yes or no?"); string what = Console.ReadLine(); switch (what) { case "yes": Console.
:Start
时,它会得到一个8错误
以下是相关代码:
:Start
Console.Write("Do you want the yes or no?");
string what = Console.ReadLine();
switch (what)
{
case "yes":
Console.WriteLine("You choose yes");
break;
case "no":
Console.WriteLine("You choose no");
break;
default:
Console.WriteLine("{0},is not a word",what);
goto Start;
}
尝试“开始:”而不是“:开始”
像这样:
Start:
Console.Write("Do you want the yes or no?");
string what = Console.ReadLine();
switch (what)
{
case "yes":
Console.WriteLine("You choose yes");
break;
case "no":
Console.WriteLine("You choose no");
break;
default:
Console.WriteLine("{0},is not a word", what);
goto Start;
}
正确的语法是
开始:
。但是,您应该在循环中设置它,而不是goto
:
bool invalid = true;
while (invalid)
{
Console.Write("Do you want the yes or no?");
string what = Console.ReadLine();
switch (what)
{
case "yes":
Console.WriteLine("You choose yes");
invalid = false;
break;
case "no":
Console.WriteLine("You choose no");
invalid = false;
break;
default:
Console.WriteLine("{0},is not a word",what);
}
}
标签的正确语法是
Start:
,而不是:Start
您可以重构代码以省略goto语句():
转到哪种语言?正确的标签语法:
Start:
请不要太习惯goto语句::DDon不要使用goto。人们普遍认为这是一种不好的做法,除了一些非常特殊的情况“goto命令不起作用”:最后<代码>而(无效)似乎更logical@AlexK. 是的,我同意。
bool continue = true;
while (continue) {
Console.Write("Do you want the yes or no?");
string what = Console.ReadLine();
switch (what)
{
case "yes":
Console.WriteLine("You choose yes");
continue = false;
break;
case "no":
Console.WriteLine("You choose no");
continue = false;
break;
default:
Console.WriteLine("{0}, is not a word",what);
break;
}
}