using System;
namespace project
{
class Program
{
static void Main(string[] args)
{
Console.Write("please enter a name");
string name = Console.ReadLine();
while (true)
{
if (name.Length <= 4)
{
//it gets stuck when I try a shorter name
Console.WriteLine("enter a longer name");
Console.ReadLine();
}
else if (name.Length >= 20)
{
//it gets stuck when I try a shorter name
Console.WriteLine("enter a shorter name");
Console.ReadLine();
}
else
{
Console.WriteLine("welcome " + name);
}
}
}
}
}
我的程序中遇到这个问题,它无法停止重复
Console.WriteLine("please enter a longer name");
当我尝试测试Console.WriteLine( "please enter a shorter name");
时,终端仍然重复“请输入更长的名称”
while 循环之前
name
的值是多少?如果少于 4 个字符,程序将进入 while 循环,并使用该值 name
并不断重复“输入更长的名称”。考虑在 while 循环外部定义 name
,然后在循环内部使用 name = Console.ReadLine()
设置其值。
这将暂停程序执行,直到在每次循环运行期间提供新名称为止,但循环仍然是无限的,因此您可能需要在 if 语句内为循环设置一个退出条件,该条件打印“欢迎
name
”。
您需要将新的用户输入设置为
name
变量。像这样:
if (name.Length <= 4)
{
//it gets stuck when I try a shorter name
Console.WriteLine("enter a longer name");
name = Console.ReadLine();
}