2

我正在尝试制作一个非常基本的程序。

我试图让用户在文本框中输入他们的温度,然后如果温度低于 15 ,那么这个词将显示在蓝色标签中,如果高于 15,它将以颜色显示红色的。

到目前为止,这是我的代码:

namespace FinalTemperature
{
    public partial class WebForm1 : System.Web.UI.Page
    {
        protected void Button1_Click(object sender, EventArgs e)
        {
            double addTemperature;
            addTemperature = Double.Parse(txttemp.Text);
            lblans.Text = addTemperature.ToString();

            if (txttemp.Text.Trim() == "15")
            {
                lblans.ForeColor = System.Drawing.Color.Red;
            }

            if (txttemp.Text.Trim() == "14") 
            {
                lblans.ForeColor = System.Drawing.Color.Blue;
            }
        }
    }
}

到目前为止,我的程序仅在 15 时以红色显示温度,在 14 时以蓝色显示温度,并且仅将数字输出到标签,但目前没有其他数字对颜色产生影响。

4

6 回答 6

3

这可以满足您的要求。将 String(文本)转换为 Int(数字),然后比较值。

    protected void Button1_Click(object sender, EventArgs e)
    {
        if (Int32.Parse(txttemp.Text.Trim()) >= 15)
        {
            lblans.Text = "Hot";
            lblans.ForeColor = System.Drawing.Color.Red;
        } 
        else 
        {
            lblans.Text = "Cold";
            lblans.ForeColor = System.Drawing.Color.Blue;
        }
    }
于 2013-10-12T17:57:02.543 回答
2

ASPX

在页面中添加标签,

<asp:label id="lbl" runat="server"></asp:label>, 

在您后面的代码中:

// 使用下面给出的条件:

if(Convert.ToInt32(txtTemp.Text)>15 )
{
  lbl.Text= "HOT";
  lbl.ForeColor= System.Drawing.Color.Red;
}
else
{
    lbl.Text="COLD";
         lbl.ForeColor= System.Drawing.Color.Blue;
}

上面的代码将字符串值转换为 Int32,以便您可以将其与您想要的任何数值进行比较,而不是将比较后的值作为字符串。您不能将除等于 , 以外的逻辑运算符应用于字符串。

于 2013-10-12T18:13:26.327 回答
2

您实际上是在检查是否等于“15”和“14”而忽略了所有其他值。

尝试这个

if(addTemperature < 15)
{
    lblans.ForeColor = System.Drawing.Color.Blue;
}
else
{
    lblans.ForeColor = System.Drawing.Color.Red;
}
于 2013-10-12T17:37:50.593 回答
1

您正在专门测试 14 和 15。您需要将字符串转换为整数并与 >= 和 <= 进行比较。

于 2013-10-12T17:37:03.953 回答
1

您需要使用<=>=>< 运算符,用于检查数字是否小于、大于等。您还需要为此使用转换后的双精度数。

// If LESS than 15
if (addTemperature < 15)
{
    lblans.ForeColor = System.Drawing.Color.Blue;
}
// Else, meaning anything other is MORE than 15, you could also do:
// else if (addTemperature >= 15), but that wouldn't be needed in this case
else
{
    lblans.ForeColor = System.Drawing.Color.Red;
}

您之前的代码不起作用的原因是您只检查了 15 和 14,而不是任何其他值。

当我阅读您的问题时,我还认为三元运算符将是一个完美的用途。

 lblans.ForeColor = addTemperature < 15 ? System.Drawing.Color.Blue : System.Drawing.Color.Red
于 2013-10-12T17:38:10.943 回答
1
lblans.ForeColor = addTemperature < 15 ? System.Drawing.Color.Blue :  System.Drawing.Color.Red;
于 2013-10-12T17:44:43.383 回答