如何在 switch case 中重复一个问题
How do I repeat a question in a switch case
如果输入不正确,我正在尝试重复问题。这是代码:
Console.WriteLine("choose a name");
string userInput = Console.ReadLine();
Boolean input = true;
switch (userInput)
{
case "joe":
Console.WriteLine("you chose a joe");
break;
case "bob":
Console.WriteLine("you chose a bob");
break;
}
如果它不是它重新提出问题的两个答案之一,我该怎么办?
您需要一个循环(while
或 do-while
)来重复迭代而不是 switch-case。
而switch-case
用于控制停止循环的标志(isCorrectInput
)。
bool isCorrectInput = false;
do
{
Console.WriteLine("choose a name");
string userInput = Console.ReadLine();
switch (userInput)
{
case "joe":
Console.WriteLine("you chose a joe");
isCorrectInput = true;
break;
case "bob":
Console.WriteLine("you chose a bob");
isCorrectInput = true;
break;
}
} while (!isCorrectInput);
参考
您应该使用 bool 变量,它将确定您是否需要重复逻辑。将它与一个循环结合起来,你会得到这个:
bool keepAsking = true;
while (keepAsking)
{
Console.WriteLine("choose a name");
string userInput = Console.ReadLine();
Boolean input = true;
switch (userInput)
{
case "joe":
Console.WriteLine("you chose a joe");
keepAsking = false;
break;
case "bob":
Console.WriteLine("you chose a bob");
keepAsking= false;
break;
}
}
你可以尝试这样的事情。但是您需要稍微更改一下代码。
class XYZ
{
static void Main(string[] args)
{
GetData()
}
}
static void GetData()
{
string userInput = Console.ReadLine();
checkcondition(userInput);
}
static void checkcondition(userInput)
{
switch (userInput)
{
case "joe":
Console.WriteLine("you chose a joe");
break;
case "bob":
Console.WriteLine("you chose a bob");
break;
default:
GetData();
break;
}
}
使用 default
大小写。
如果 switch 语句中的 none 个案例匹配,则运行默认案例。
这是一个例子。
Console.WriteLine("choose a name");
string userInput = Console.ReadLine();
switch (userInput)
{
case "joe":
// ...
break;
case "bob":
// ...
break;
default:
// This runs if userInput is neither "joe" nor "bob"
}
然后你可以创建一个方法,将 choose a name
写入控制台,接受用户的输入,然后运行 switch 语句——默认情况下会调用相同的方法。
void GetName()
{
// Write "choose a name" to the console
// Take the user's input
switch (userInput)
{
case "joe":
// ...
break;
case "bob":
// ...
break;
default:
GetName();
return;
}
}
您也可以使用更小的代码实现相同的结果,但使用 while
循环而不是 switch
语句
while(true){
Console.Write("Choose a Name: ");
var name = Console.ReadLine().ToLower();
if(name == "joe" || name == "bob"){
Console.WriteLine("You chose a " + name + "!");
break;
}else{
Console.WriteLine("Invalid Selection, Try Again");
}
}
如果输入不正确,我正在尝试重复问题。这是代码:
Console.WriteLine("choose a name");
string userInput = Console.ReadLine();
Boolean input = true;
switch (userInput)
{
case "joe":
Console.WriteLine("you chose a joe");
break;
case "bob":
Console.WriteLine("you chose a bob");
break;
}
如果它不是它重新提出问题的两个答案之一,我该怎么办?
您需要一个循环(while
或 do-while
)来重复迭代而不是 switch-case。
而switch-case
用于控制停止循环的标志(isCorrectInput
)。
bool isCorrectInput = false;
do
{
Console.WriteLine("choose a name");
string userInput = Console.ReadLine();
switch (userInput)
{
case "joe":
Console.WriteLine("you chose a joe");
isCorrectInput = true;
break;
case "bob":
Console.WriteLine("you chose a bob");
isCorrectInput = true;
break;
}
} while (!isCorrectInput);
参考
您应该使用 bool 变量,它将确定您是否需要重复逻辑。将它与一个循环结合起来,你会得到这个:
bool keepAsking = true;
while (keepAsking)
{
Console.WriteLine("choose a name");
string userInput = Console.ReadLine();
Boolean input = true;
switch (userInput)
{
case "joe":
Console.WriteLine("you chose a joe");
keepAsking = false;
break;
case "bob":
Console.WriteLine("you chose a bob");
keepAsking= false;
break;
}
}
你可以尝试这样的事情。但是您需要稍微更改一下代码。
class XYZ
{
static void Main(string[] args)
{
GetData()
}
}
static void GetData()
{
string userInput = Console.ReadLine();
checkcondition(userInput);
}
static void checkcondition(userInput)
{
switch (userInput)
{
case "joe":
Console.WriteLine("you chose a joe");
break;
case "bob":
Console.WriteLine("you chose a bob");
break;
default:
GetData();
break;
}
}
使用 default
大小写。
如果 switch 语句中的 none 个案例匹配,则运行默认案例。 这是一个例子。
Console.WriteLine("choose a name");
string userInput = Console.ReadLine();
switch (userInput)
{
case "joe":
// ...
break;
case "bob":
// ...
break;
default:
// This runs if userInput is neither "joe" nor "bob"
}
然后你可以创建一个方法,将 choose a name
写入控制台,接受用户的输入,然后运行 switch 语句——默认情况下会调用相同的方法。
void GetName()
{
// Write "choose a name" to the console
// Take the user's input
switch (userInput)
{
case "joe":
// ...
break;
case "bob":
// ...
break;
default:
GetName();
return;
}
}
您也可以使用更小的代码实现相同的结果,但使用 while
循环而不是 switch
语句
while(true){
Console.Write("Choose a Name: ");
var name = Console.ReadLine().ToLower();
if(name == "joe" || name == "bob"){
Console.WriteLine("You chose a " + name + "!");
break;
}else{
Console.WriteLine("Invalid Selection, Try Again");
}
}