发现错误后如何 return 返回?
how do I return back after catching an error?
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
}
如果用户没有输入任何内容而没有进入下一个循环,我如何return返回添加名字?
围绕一个 do while 循环包装您的逻辑:
string name = null;
do
{
// Read input from user
}
while(!IsLegal(name));
您可以在要求输入之前初始化一个空值,然后将输入代码包装在一个 while 循环中,该循环会继续询问直到给出有效值:
string fullname = string.Empty;
while(string.IsNullOrEmpty(fullname))
{
fullname = Console.ReadLine().ToLower();
}
fullName[loopCount, 0] = fullname;
这样,如果用户没有输入任何内容,您将返回并再次询问。
在不改变循环结构的情况下,您可以在 if
语句中的 giveError();
之后添加以下行:
loopcount--;
continue;
这会减少您的 loopcount
,这样您就不会失去位置,并且会 return 您的程序到达循环的顶部,然后重新增加循环计数。
假设全名是 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();
}
}
循环之前的额外输入行是值得的,因此如果需要循环(即收到错误的输入),您可以提供 "bad input" 消息。
对于你的第二个名字,你想要 fullName[loopCount,1]
,而不是 fullName[0,loopCount]
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
}
如果用户没有输入任何内容而没有进入下一个循环,我如何return返回添加名字?
围绕一个 do while 循环包装您的逻辑:
string name = null;
do
{
// Read input from user
}
while(!IsLegal(name));
您可以在要求输入之前初始化一个空值,然后将输入代码包装在一个 while 循环中,该循环会继续询问直到给出有效值:
string fullname = string.Empty;
while(string.IsNullOrEmpty(fullname))
{
fullname = Console.ReadLine().ToLower();
}
fullName[loopCount, 0] = fullname;
这样,如果用户没有输入任何内容,您将返回并再次询问。
在不改变循环结构的情况下,您可以在 if
语句中的 giveError();
之后添加以下行:
loopcount--;
continue;
这会减少您的 loopcount
,这样您就不会失去位置,并且会 return 您的程序到达循环的顶部,然后重新增加循环计数。
假设全名是 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();
}
}
循环之前的额外输入行是值得的,因此如果需要循环(即收到错误的输入),您可以提供 "bad input" 消息。
对于你的第二个名字,你想要 fullName[loopCount,1]
,而不是 fullName[0,loopCount]