如何停止 Console.WriteLine 在 if 语句的 while 循环中重复? C#

问题描述 投票:0回答:2

使用系统; 命名空间项目 { 班级计划 { 静态无效主(字符串[]参数) { Console.Write("请输入姓名"); 字符串名称 = 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("请输入更长的名称");当我尝试测试 Console.WriteLine(“请输入更短的名称”);终端仍然重复“请输入更长的名称”

c# if-statement while-loop
2个回答
0
投票

while 循环之前

name
的值是多少?如果少于 4 个字符,程序将进入 while 循环,并使用该值
name
并不断重复“输入更长的名称”。考虑在 while 循环外部定义
name
,然后在循环内部使用
name = Console.ReadLine()
设置其值。


0
投票

您需要将新的用户输入设置为

name
变量。像这样:

if (name.Length <= 4)
{
    //it gets stuck when I try a shorter name
    Console.WriteLine("enter a longer name");
    name = Console.ReadLine();
}
© www.soinside.com 2019 - 2024. All rights reserved.