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

チェックするときは、trueこれを使用できることに注意してください。

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 に答える
0

@des と @Soner の回答に加えて、これをやってみませんか :

if (checkBox5.Checked)

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

本来あるべきようにインクリメントvalue5するつもりはないと思います1value5 += 1;

于 2013-01-26T11:46:24.167 に答える
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 に答える