为了账号安全,请及时绑定邮箱和手机立即绑定

如果 (Integer Console.Readline "" or null) 不起作用

如果 (Integer Console.Readline "" or null) 不起作用

C#
狐的传说 2021-07-28 21:05:05
在搜索和搜索(你知道它是怎么回事)之后,我无法弄清楚为什么这段代码不起作用。我只是想让它像这样工作if (Nummer == "") {    Console.WriteLine("0");}就是这样,它不起作用。我已经找了一个半小时了。不明白为什么有一个简单的基本解释。我只找到了如何用字符串或其他东西修复它,然后我尝试转换它,但它仍然不起作用。有人能帮助我吗?感谢您对我有限的知识的耐心。谢谢你的时间static void Main(string[] args){    bool herhaal = true;    do    {                        Console.Write("Geef een getal : ");        int Nummer = Convert.ToInt16(Console.ReadLine());                   if (Console.ReadLine() == "" && Console.ReadLine() == null)        {            Console.WriteLine("0");        }        double kw = Math.Pow(Nummer, 2);        Console.WriteLine("Kwadraat van {0} is: {1}", Nummer, kw + Environment.NewLine);    } while (herhaal);}
查看完整描述

3 回答

?
弑天下

TA贡献1818条经验 获得超8个赞

static void Main(string[] args)

{

    int Nummer;

    bool herhaal = true;

    do

    {                

        Console.Write("Geef een getal : ");          

        //only read from the Console ONCE per loop iteration, and always read to a string first

        string input = Console.ReadLine(); 


        //TryParse better than Convert for converting strings to integers

        if (!int.TryParse(input, out Nummer))        

        {

            Console.WriteLine("0");

        }

        else  //only do the second part if the conversion worked

        {

            double kw = Math.Pow(Nummer, 2);

            Console.WriteLine("Kwadraat van {0} is: {1}\n", Nummer, kw);

        }


    } while (herhaal);

}

要从 WinForms 应用程序执行此操作,如评论中所尝试:


private void button1_Click(object sender, EventArgs e)

{

    double aantalgroep;

    if (!double.TryParse(textBox1.Text, out aantalgroep))        

    {

        textBox1.Text = "0";

    }

    else 

    {

        double kw = Math.Pow(aantalgroep, 2);

        textBox1.Text = String.Format("Kwadraat van {0} is: {1}", aantalgroep, kw);

    }

}


查看完整回答
反对 回复 2021-07-31
?
翻阅古今

TA贡献1780条经验 获得超5个赞

根据 C# 文档,Console.ReadLine执行以下操作

从标准输入流中读取下一行字符。

这意味着每次调用时Console.ReadLine,都会从控制台读取一个新行。从我在你的代码中看到的,这不是你想要的行为。要解决您的问题,您应该将 的结果存储Console.ReadLine在一个变量中并使用该变量而不是 ReadLine 方法。


查看完整回答
反对 回复 2021-07-31
  • 3 回答
  • 0 关注
  • 182 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信