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

问题描述 投票:0回答:2
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");
时,终端仍然重复“请输入更长的名称”

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

while 循环之前

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

这将暂停程序执行,直到在每次循环运行期间提供新名称为止,但循环仍然是无限的,因此您可能需要在 if 语句内为循环设置一个退出条件,该条件打印“欢迎

name 
”。


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.