不输入 if/else 块

本文关键字:else if 输入 | 更新日期: 2023-09-27 18:30:31

我有以下代码。当我在控制台中键入0时,我希望控制台显示"请重新输入您的年龄",但该if块永远不会进入并且程序退出。我做错了什么?

Console.WriteLine("Please entre your first name:");
            Console.ReadLine();
            Console.WriteLine("Please enter your last name:");
            Console.ReadLine();
            Console.WriteLine("Please type your age:");
            Console.ReadLine();
            int minAge = 18;
            int maxAge = 68;
            if (minAge < 18)
               if (maxAge > 68)
                Console.WriteLine("Please re-enter your age");
            else
                Console.WriteLine("Please choose f for female or m for male:");

不输入 if/else 块

您没有将用户输入读取到age变量中。执行此操作时,您需要考虑用户可能键入非数字字符。您也没有将if/else块包装在大括号内,这会导致逻辑流程与您的意图不匹配。

以下代码将控制台输入读入 age 变量,使用 int 拒绝不可分析的输入。TryParse,它将minAge值和maxAge值保留为常量。我们一直循环,直到用户输入了一个有效的数字作为年龄,如果他们因为太年轻或太老而没有资格继续,则退出:

const int minAge = 18;
const int maxAge = 68;
int age;
do
{
    Console.WriteLine("Please type your age:");
} while (!int.TryParse(Console.ReadLine(), out age));
if (age < minAge || age > maxAge)
{
    Console.WriteLine("I'm sorry, this application is for people aged {0} to {1} only", minAge, maxAge);
    return; // or exit console app
}
Console.WriteLine("Please choose f for female or m for male:"); 

您没有存储输入的年龄。因此,程序永远不会进入下一部分,因为您正在比较 minAge 与 minAge 以及 maxAge 与 maxAge。也许你可以使用

int age = Convert.ToInt32(Console.Readline()) 

编辑:如果您不想要任何异常,您可以使用

int age;
bool res = Int32.TryParse(Console.Readline(), out age);
if (!res)
     Console.WriteLine("Please re-enter your age");

然后在下一部分使用它们

 if (age < minAge || age > maxAge )
      Console.WriteLine("Please re-enter your age");
 else
      Console.WriteLine("Please choose f for female or m for male:");

尝试以下方法可能会有所帮助,

        int userage;
        Console.WriteLine("Please type your age:");
        userage=int.Parse(Console.ReadLine());
        int minAge = 18;
        int maxAge = 68;
        if (userage>minAge || userage<maxAge)
                Console.WriteLine("Age is not accepted");
            else
            Console.WriteLine("Your Age is {0}",userage.ToString());
            //do what ever you want
            //Console.WriteLine("Please choose f for female or m for male:");
        Console.ReadLine();