c#如何使用循环来重复数组中的一个阶段
本文关键字:一个 循环 何使用 数组 | 更新日期: 2023-09-27 18:11:46
我将一些问题存储在数组中供用户回答,但我不希望用户输入整数。当用户输入整数时,系统会提示"请输入一个单词",然后跳转到下一个问题。我想让它重复这个问题,直到用户输入一个单词,然后继续循环。
我最近才开始学习c#,如果有任何帮助,我将不胜感激。
string [] Ques = new string [5];
Ques[0] = "How do you say Good morning in Portuguese";
Ques[1] = "how do you say how are you;";
Ques[2] = "how do you say I am fine thank you";
Ques[3] = "How do you say is everything ok";
Ques[4] = "how do you say yes";
foreach (string Q in Ques)
{
Console.WriteLine(Q);
string Answer = Console.ReadLine();
int value;
if (int.TryParse(Answer, out value))
{
Console.WriteLine("please enter a word");
}
}
你需要的是一个while循环在for:
string[] Ques = new string[5];
Ques[0] = "How do you say Good morning in Portuguese";
Ques[1] = "how do you say how are you;";
Ques[2] = "how do you say I am fine thank you";
Ques[3] = "How do you say is everything ok";
Ques[4] = "how do you say yes";
foreach (string Q in Ques)
{
Console.WriteLine(Q);
string Answer = Console.ReadLine();
int value;
while (int.TryParse(Answer, out value))
{
Console.WriteLine("please enter a word");
Answer = Console.ReadLine();
}
}
这样,当用户输入一个整数时,他会提示"请输入一个单词",直到他输入一个不能被解析为int的字符串,然后将提示下一个问题
如果你不想在迭代时移动到下一个元素,不要使用foreach
,使用简单的for
并控制您的进度:
for(int i = 0; i < Ques.Length; i++)
{
Console.WriteLine(Q);
string Answer = Console.ReadLine();
int value;
if (int.TryParse(Answer, out value))
{
Console.WriteLine("please enter a word");
i--; // go back, and will go forward in for statement
}
}
显然,你的代码是不完整的,因为你没有对Answer
做任何事情。当您将其更改为有意义时,您可能会发现其他解决方案更合适。
我希望它重复这个问题,直到用户输入一个单词,然后继续
听起来你需要另一个循环:
foreach (string Q in Ques)
{
bool numberEntered = false;
do
{
Console.WriteLine(Q);
string Answer = Console.ReadLine();
int value;
numberEntered = int.TryParse(Answer, out value);
if (numberEntered)
{
Console.WriteLine("please enter a word");
}
}
while (numberEntered);
}
试试这个(它重复问题)
string[] Ques = new string[5];
Ques[0] = "How do you say Good morning in Portuguese";
Ques[1] = "how do you say how are you;";
Ques[2] = "how do you say I am fine thank you";
Ques[3] = "How do you say is everything ok";
Ques[4] = "how do you say yes";
foreach (string Q in Ques)
{
Console.WriteLine(Q);
string Answer = Console.ReadLine();
int value;
if (!int.TryParse(Answer, out value))
{
while (!int.TryParse(Answer, out value))
{
Console.WriteLine("please enter a word");
Console.WriteLine(Q);
Answer = Console.ReadLine();
}
}
}