5

我是编程新手,遇到了一个叫做“可能错误的空语句”的问题,现在我已经对这个主题做了很多研究,我得到的解决方案是删除 if 语句后的分号,但是这只会产生更多警告和更多我目前不知道解决方案的错误,我非常感谢您的帮助,我使用的语言是 C#。

if (checkBox5.Checked = true) ;
Double value5 = Convert.ToDouble(checkBox4.Checked);
value5 = +1;
Double result5 = value5;
label2.Text = Convert.ToString(result5);
4

5 回答 5

9

这就是你想要的:

if (checkBox5.Checked == true)
{
    double value5 = Convert.ToDouble(checkBox4.Checked) + 1;
    label2.Text = value5.ToString();
}

=是赋值,而==在检查相等性,另一方面,分号之后if将终止整个if语句。

请注意,当您检查truethen 时,您可以使用它:

if (checkBox5.Checked) {  }
于 2013-01-26T11:40:50.650 回答
4

你应该使用;

if (checkBox5.Checked == true)

不是

if (checkBox5.Checked = true)

=赋值运算符==相等运算符

查看;

当然,当您检查您的真实价值时,您可以使用您的 if 条件,例如;

if (checkBox5.Checked)
{
  // Do something if checkBox5 is checked.
}

如果您在 if 条件后使用分号;

if (checkBox5.Checked = true) ;

相当于

if (checkBox5.Checked = true) { }

所以在你的情况下,我认为你也不应该使用分号。因为如果你使用它,你的代码会是这样的;

if (checkBox5.Checked = true)
{

}

Double value5 = Convert.ToDouble(checkBox4.Checked);
value5 = +1;
Double result5 = value5;
label2.Text = Convert.ToString(result5);

我假设你不想这样做。请记住,即使没有要执行的主体,也不意味着循环终止。

于 2013-01-26T11:41:55.873 回答
1

问题是 if 末尾的分号以及单个“=”应该是:

if (checkBox5.Checked = true) ;

应该:

if (checkBox5.Checked == true) // double '==' for equality comparison
于 2013-04-05T19:50:31.500 回答
0
if (checkBox5.Checked == true) ; // or you can use if (checkBox5.Checked)
//                     ^------------------- `=` assignment operator must be `==` equals
{  // missed 
    Double value5 = Convert.ToDouble(checkBox4.Checked);
    value5 = +1;
//          ^_______________ I assume you need `=+` addition assignment operator instead
//                                     assigning `+1` to `value5 `
    Double result5 = value5;
    label2.Text = Convert.ToString(result5);
} /// missed 
于 2013-01-26T11:47:51.083 回答
0

除了@des 和@Soner 的答案,你为什么不这样做:

if (checkBox5.Checked)

    label2.Text = Convert.ToDouble(checkBox5.Checked).ToString();

我假设您不打算value51应有的方式增加value5 += 1;

于 2013-01-26T11:46:24.167 回答