' if '语句不能正常工作

本文关键字:工作 不能 if 语句 常工作 | 更新日期: 2023-09-27 18:18:31

我正在尝试为我的编程类制作控制台应用程序。if语句不能正常工作。我想让它计算字符串长度如果它大于10000或者小于0,转到else语句。但是它不这样做,并继续if语句。

static void Main(string[] args)
{
    Console.WriteLine("Input a year from 0 to 10000 to determine the next year with distinct numbers");
    string a = Console.ReadLine();
    int MaxLength = 10000;
    int MinLength = 0;
    if (a.Length <= MaxLength && a.Length >= MinLength)
    {
        string b = a.Substring(0, 1);
        string b1 = a.Substring(1, 1);
        string b2 = a.Substring(2, 1);
        string b3 = a.Substring(3, 1);
        Console.WriteLine(b + " " + b1 + " " + b2 + " " + b3);
    }
    else
    {
        Console.WriteLine("Error");
    }
    Console.ReadKey();
}

' if '语句不能正常工作

你必须使用int.Parse(a)

if (int.Parse(a) <= MaxLength && int.Parse(a) >= MinLength)
{
    string b = a.Substring(0, 1);
    string b1 = a.Substring(1, 1);
    string b2 = a.Substring(2, 1);
    string b3 = a.Substring(3, 1);
    Console.WriteLine(b + " " + b1 + " " + b2 + " " + b3);
}
else
{
    Console.WriteLine("Error");
}

您的代码正在检查字符串输入的长度-因此,如果用户输入,例如100,长度将是3。

字符串的长度永远不能小于0,而且我非常怀疑它永远不会超过10000。

也许你实际上试图做的是将用户的输入转换为一个数字,同时保持使用Substring方法从用户输入作为一组字符的能力。

在这种情况下,您需要两个变量

  1. 原始用户输入(一个字符串,您可以使用Substring) - a从您的原始代码
  2. 输入的数值表示,您可以将其与最小值&最大数量。
  3. 代码中的val

另一个需要考虑的问题是,用户可以输入一个不能转换为数字的值,因此

  • 布尔值,表示用户已输入有效号码。
  • 代码中的isValidEntry
    Console.WriteLine("Input a year from 0 to 10000 to determine the next year with distinct numbers");
    string a = Console.ReadLine();
    int MaxLength = 10000;
    int MinLength = 0;
    int val = 0;
    bool isValidEntry = int.TryParse(a, out val);
    if (isValidEntry && val <= MaxLength && val >= MinLength)
    {
        string b = a.Substring(0, 1);
        string b1 = a.Substring(1, 1);
        string b2 = a.Substring(2, 1);
        string b3 = a.Substring(3, 1);
        Console.WriteLine(b + " " + b1 + " " + b2 + " " + b3);
    }
    else
    {
        Console.WriteLine("Error");
    }
    Console.ReadKey();
    

    我相信你正在做的事情有些混乱。您的描述说您正在尝试计算输入字符串中的字符数量。在这种情况下,您将需要一个超过10000个字符的字符串来执行else语句。

    然而你的程序代码声称你只想要字符串的数值。因此,您应该尝试使用转换方法。

    int x = int.Parse(a);
    

    显然你需要在x上做边界检查,而不是在后面。