如何在收到错误后返回?

时间:2015-01-12 17:48:13

标签: c# for-loop iteration

for (int loopCount = 0; loopCount < 9; loopCount++)
{
    Console.WriteLine("Employee #" + (loopCount + 1) + " first name: ");
    fullName[loopCount, 0] = Console.ReadLine().ToLower();
    // first name
    if (fullName[loopCount, 0].Length == 0)
    {
        giveError();
        // nothing typed warning               
    }
    Console.WriteLine("Employee #" + (loopCount + 1) + " second name: ");
    fullName[0, loopCount] = Console.ReadLine().ToLower();
    // second name
}

如果用户在没有进入下一个循环的情况下输入任何内容,如何返回添加名字?

4 个答案:

答案 0 :(得分:4)

围绕do while循环包装你的逻辑:

string name = null;

do
{
  // Read input from user

}
while(!IsLegal(name));

答案 1 :(得分:0)

您可以在请求输入之前初始化空值,然后将输入代码包装在while循环中,该循环继续询问,直到给出有效值:

string fullname = string.Empty;
while(string.IsNullOrEmpty(fullname))
{
    fullname = Console.ReadLine().ToLower();
}
fullName[loopCount, 0] = fullname;

这样,如果用户没有输入任何内容,您只需循环返回并再次询问。

答案 2 :(得分:0)

在不更改循环结构的情况下,您可以在giveError();if之后添加以下行:

loopcount--;
continue;

这将减少你的loopcount,所以你不会失去你的位置,并将你的程序返回到循环的顶部,然后重新增加loopcount。

答案 3 :(得分:0)

假设fullName是string[9,2]

for (int loopCount = 0; loopCount < 9; loopCount++)
{
   Console.WriteLine("Employee #" + (loopCount + 1) + " first name: ");

   fullName[loopCount, 0] = Console.ReadLine().ToLower();
   while(fullName[loopCount, 0].Length == 0)
   {
       Console.WriteLine("Bad Input, Retry");
       fullName[loopCount, 0] = Console.ReadLine().ToLower();
   }
}

在循环之前它值得额外的输入行,所以如果需要循环(即接收到错误的输入),你可以提供一个&#34;错误的输入&#34;信息。

作为您的第二个名字,您需要fullName[loopCount,1],而不是fullName[0,loopCount]