【问题标题】:Please help me for solving user input problem of c#请帮我解决c#的用户输入问题
【发布时间】:2022-12-10 23:21:01
【问题描述】:

我想编写计算 2 个数字之和的代码。我的主要问题是我不能连续输入两个数字。当我输入第一个数字程序时,复制它并停止工作。对于我的计划,程序应该工作到第二个数字然后停止。 这是我的代码:

namespace test;
class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine("Enter numbers to calculate or tap ENTER to exit");
        string enter = Console.ReadLine();
        while(true){
            int x = Convert.ToInt32(enter);
            int y = Convert.ToInt32(enter);
            if(x > 0 && y > 0){
                int z = x + y;
                Console.WriteLine(z);
                break;
            }else if(enter == ""){
                break;
            }else{
                Console.WriteLine("Invalid option");
                break;
            }
        }
    }
}

我尝试在“when”之外写 x,但没有用。我也尝试在没有“If”的情况下运行这段代码,但我做不到。我只想连续输入 2 个数字。

【问题讨论】:

  • 您只拨打了一次Console.ReadLine()。因此,您只会获得一个用户条目。 int x = Convert.ToInt32(Console.ReadLine()); int y = Convert.ToInt32(Console.ReadLine());

标签: c# algorithm math input


【解决方案1】:

这是因为您只使用 Console.ReadLine() 一次,然后您将该值同时用于 x 和 y。

相反,你应该这样做:

namespace test;
class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine("Enter numbers to calculate or tap ENTER to exit");
        string enter;
        while(true){
            enter = Console.ReadLine();
            int x = Convert.ToInt32(enter);
            enter = Console.ReadLine();
            int y = Convert.ToInt32(enter);
            if(x > 0 && y > 0){
                int z = x + y;
                Console.WriteLine(z);
                break;
            }else if(enter == ""){
                break;
            }else{
                Console.WriteLine("Invalid option");
                break;
            }
        }
    }
}

【讨论】:

    【解决方案2】:

    尝试这个:

            Console.WriteLine("Enter numbers to calculate or tap ENTER to exit");
            string enter1 = Console.ReadLine();
            string enter2 = Console.ReadLine();
            while (true)
            {
                int x = Convert.ToInt32(enter1);
                int y = Convert.ToInt32(enter2);
                if (x > 0 && y > 0)
                {
                    int z = x + y;
                    Console.WriteLine(z);
                    break;
                }
                else if (enter1 == "" || enter2 == "")
                {
                    break;
                }
                else
                {
                    Console.WriteLine("Invalid option");
                    break;
                }
            }
    

    【讨论】:

      【解决方案3】:

      您可以尝试以下操作,因为 Console.ReadLine() 会给出一个字符串。

      int x = Convert.ToInt32(enter.Split()[0]);
      int y = Convert.ToInt32(enter.Split()[1]);
      

      【讨论】:

        猜你喜欢
        • 2022-12-17
        • 1970-01-01
        • 1970-01-01
        • 2011-09-16
        • 1970-01-01
        • 2022-11-26
        • 1970-01-01
        • 1970-01-01
        • 2010-12-29
        相关资源
        最近更新 更多