布尔问题

时间:2016-06-23 17:04:00

标签: c# boolean

我正在用C#创建一个时钟。 Joshua在顶部设置为false,当我点击时钟时,我们假设将joshua设置为true并跳过if的其余部分}语句。相反,它告诉我,我已经掌握了。

if (Joshua = false && button.Text == "In")
{
    Joshua = true;
    goto done;
}
if (Joshua = true && button.Text == "Out")
{
    Joshua = false;
    goto done;
}
else if (Joshua = true && button.Text == "In")
{
    SpeakNow("You are already clocked in");
    goto clear;
}
else if (Joshua = false && button.Text == "Out")
{
    SpeakNow("You are already clocked out");
    goto clear;

5 个答案:

答案 0 :(得分:4)

你有:

Joshua = false

这是一项任务,而非比较。您if测试中实际需要的是:

Joshua == false

答案 1 :(得分:1)

Joshua = false

是作业。您希望通过使用双等号(例如此

)来检查相等性
Joshua == false

或者您可以使用Equals,它最终可以在引擎盖下进行相同的操作

Joshua.Equals(false)

答案 2 :(得分:0)

您正在将赋值操作'='与等于操作'=='

进行混合

将if语句中的所有'='更改为'=='

像这样

    if (Joshua == false && button.Text == "In")
    {
           Joshua = true;
           goto done;
    }
    if (Joshua == true && button.Text == "Out")
    {
           Joshua = false;
           goto done;
    }
    else if (Joshua == true && button.Text == "In")
    {
           SpeakNow("You are already clocked in");
           goto clear;
    }
    else if (Joshua == false && button.Text == "Out")
    {
            SpeakNow("You are already clocked out");
            goto clear;
    }

答案 3 :(得分:0)

制作

Joshua = false 

Joshua == false 

在你的第一个if条件

答案 4 :(得分:0)

您可以使用更好的替代方案:

if (!Joshua && button.Text == "In")
{
       Joshua = true;
       goto done;
}
if (Joshua && button.Text == "Out")
{
       Joshua = false;
       goto done;
}

因此Joshua是一个Bool你可以使用!(not)运算符

另外,请确保按预期更改按钮的文本。

    protected void button_Click(object sender, System.EventArgs e)
    {
          if(button.Text.ToLower() == "in")
          {
              button.Text = "Out";
          }
          else if(button.Text.ToLower() == "out")
          {
              button.Text = "In";
          }
    }