Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 用单选按钮做一些基础数学_C# - Fatal编程技术网

C# 用单选按钮做一些基础数学

C# 用单选按钮做一些基础数学,c#,C#,我正在做一个程序,将计算多少人需要支付,如果他们有车停在那里。我正在尝试使用单选按钮选择车辆类型。当选择cars(radiobutton1)时,算法工作,但当选择trucks(radiobutton2)时,算法将不工作。这是我的密码 // cars if (radioButton1.Checked == true) { int hac = Convert.ToInt16(txthrs.Text); int

我正在做一个程序,将计算多少人需要支付,如果他们有车停在那里。我正在尝试使用单选按钮选择车辆类型。当选择cars(radiobutton1)时,算法工作,但当选择trucks(radiobutton2)时,算法将不工作。这是我的密码

 // cars 
        if (radioButton1.Checked == true)
        {



            int hac = Convert.ToInt16(txthrs.Text);
            int h1c = 5;
            int h2c = 3;



            if (txthrs.Text == "1") ;
            money.Text = h1c.ToString();

            if (hac < 1) ;
            money.Text = (h1c + (hac - 1) * h2c).ToString();
            // end of cars 
            // trucks 
            if (radioButton2.Checked == true)
            {

                int hat = Convert.ToInt16(txthrs.Text);
                int h1t = 6;
                decimal h2t = 3.5m;



                if (txthrs.Text == "1") ;
                money.Text = h1t.ToString();

                if (hat < 1) ;
                money.Text = (h1t + (hat - 1) * h2t).ToString();
            }
        }
    }
}
//汽车
如果(radioButton1.Checked==true)
{
int hac=Convert.ToInt16(txthrs.Text);
int h1c=5;
int h2c=3;
如果(txthrs.Text==“1”);
money.Text=h1c.ToString();
if(hac<1);
money.Text=(h1c+(hac-1)*h2c.ToString();
//汽车的尽头
//卡车
如果(radioButton2.Checked==true)
{
int hat=转换为16(txthrs.Text);
int h1t=6;
小数h2t=3.5m;
如果(txthrs.Text==“1”);
money.Text=h1t.ToString();
if(hat<1);
money.Text=(h1t+(hat-1)*h2t).ToString();
}
}
}
}

}

如果嵌套了if语句,则只有选中单选按钮1,才会执行第二条if语句。将第二个if块从第一个if块中移出。

如果嵌套了if语句,则只有选中单选按钮1,第二个if语句才会执行。将第二个if块移出第一个if块

当选择卡车(radiobutton2)时,它将不工作

首先,您有一些逻辑错误,因为
if(hac<1)
(hat<1)根本不做任何事情,它只是一个表达式本身。考虑到这一点,我更新了您的代码以删除这些逻辑错误

其次,不要使用
==
来比较
字符串,而是使用方法

第三,
radioButton2
条件嵌套在
radioButton1
条件中,因此它会导致意外行为。您可以通过如下方式分离它们来解决此问题:

if (radioButton1.Checked == true)
{
      int hac = Convert.ToInt16(txthrs.Text);
      int h1c = 5;
      int h2c = 3;

      if (txthrs.Text.ToString().Equals("1")) 
          money.Text = h1c.ToString();

      if (hac < 1) 
          money.Text = (h1c + (hac - 1) * h2c).ToString();
}

if (radioButton2.Checked == true)
{
     int hat = Convert.ToInt16(txthrs.Text);
     int h1t = 6;
     decimal h2t = 3.5m;

     if (txthrs.Text.ToString().Equals("1")) 
           money.Text = h1t.ToString();
     if (hat < 1) 
           money.Text = (h1t + (hat - 1) * h2t).ToString();

}
if(radioButton1.Checked==true)
{
int hac=Convert.ToInt16(txthrs.Text);
int h1c=5;
int h2c=3;
if(txthrs.Text.ToString().Equals(“1”))
money.Text=h1c.ToString();
如果(hac<1)
money.Text=(h1c+(hac-1)*h2c.ToString();
}
如果(radioButton2.Checked==true)
{
int hat=转换为16(txthrs.Text);
int h1t=6;
小数h2t=3.5m;
if(txthrs.Text.ToString().Equals(“1”))
money.Text=h1t.ToString();
if(hat<1)
money.Text=(h1t+(hat-1)*h2t).ToString();
}
当选择卡车(radiobutton2)时,它将不工作

首先,您有一些逻辑错误,因为
if(hac<1)
(hat<1)根本不做任何事情,它只是一个表达式本身。考虑到这一点,我更新了您的代码以删除这些逻辑错误

其次,不要使用
==
来比较
字符串,而是使用方法

第三,
radioButton2
条件嵌套在
radioButton1
条件中,因此它会导致意外行为。您可以通过如下方式分离它们来解决此问题:

if (radioButton1.Checked == true)
{
      int hac = Convert.ToInt16(txthrs.Text);
      int h1c = 5;
      int h2c = 3;

      if (txthrs.Text.ToString().Equals("1")) 
          money.Text = h1c.ToString();

      if (hac < 1) 
          money.Text = (h1c + (hac - 1) * h2c).ToString();
}

if (radioButton2.Checked == true)
{
     int hat = Convert.ToInt16(txthrs.Text);
     int h1t = 6;
     decimal h2t = 3.5m;

     if (txthrs.Text.ToString().Equals("1")) 
           money.Text = h1t.ToString();
     if (hat < 1) 
           money.Text = (h1t + (hat - 1) * h2t).ToString();

}
if(radioButton1.Checked==true)
{
int hac=Convert.ToInt16(txthrs.Text);
int h1c=5;
int h2c=3;
if(txthrs.Text.ToString().Equals(“1”))
money.Text=h1c.ToString();
如果(hac<1)
money.Text=(h1c+(hac-1)*h2c.ToString();
}
如果(radioButton2.Checked==true)
{
int hat=转换为16(txthrs.Text);
int h1t=6;
小数h2t=3.5m;
if(txthrs.Text.ToString().Equals(“1”))
money.Text=h1t.ToString();
if(hat<1)
money.Text=(h1t+(hat-1)*h2t).ToString();
}

它在那里,因此当输入框大于1时,它将开始为每小时添加3而不是5。请显示一个完整的示例。您应该提供足够的代码,以便我们可以自己复制、编译和运行它。这样,当输入框大于1时,它将开始为每小时添加3而不是5。请显示一个完整的示例。您应该提供足够的代码,我们可以自己复制、编译和运行它。您不需要在字符串上调用ToString(
txthrs.Text.ToString()
,其他类似的都是多余的)。第二,运算符==被字符串重写,因此无需调用
Equals()
,除非传递区域性information@pinkfloydx33我知道,而且你不是第一个说“你不需要在字符串上调用ToString(txthrs.Text.ToString()”的人。”我猜你也不会是最后一个。正如我经常对人们说的,我喜欢在编程时尽可能地明确。为什么要到此为止呢?当然
myString.ToString().ToString()
更明确,肯定会确保你有一个字符串。如果有任何东西是混乱的,就像
If(bool==true)一样
。我想每个人都有自己的。顺便说一句,如果你想明确地说,
ToInt16
返回一个
short
,你至少应该调用
ToInt32
,或者更好地使用
int.TryParse
,因为数据来自用户(我知道这是OPs代码,但重点是如果你要添加自己的ToString调用,并建议更改一些有更好的地方要指出的内容)你不需要在字符串上调用ToString(
txthrs.Text.ToString()
,其他类似的都是多余的)。其次,运算符==被字符串重写,因此无需调用
Equals()
,除非传递区域性information@pinkfloydx33我知道,而且你不是第一个说“你不需要在字符串上调用ToString(txthrs.Text.ToString()”的人。”我想你也不会是最后一个。正如我经常对人们说的那样,我喜欢在编程时尽可能明确。那为什么就到此为止呢?当然
myString.ToString().ToString()