-1

私はこのコードを持っていますが、演算子 || を使用できない理由がわかりません。この例では。

"演算子 '||' タイプ 'bool' および 'int' のオペランドには適用できません"

何か不足していますか?このブール値はどこにありますか?

int i = 1;                            
if ( i == 1)
{
    Response.Write("-3");
}
else if (i == 5 || 3) //this is the error, but where is the bool?
{
    Response.Write("-2");
}
4

3 に答える 3

3

x と y および/または x と z を比較する必要があります。x と (y または z) を比較することは、ほとんどの言語では許可されていません。intである「3」を追加すると、boolが導入されました。|| コンパイラは、(i == 5) が必要だと考えています || (3) 3 は自動的に bool に変換されないため (おそらく JavaScript を除く)、これは機能しません。

int i = 1;                            
        if ( i == 1)
        {
            Response.Write("-3");
        }


        else if (i == 5 || i == 3) //this is the error, but where is the bool?
        {
            Response.Write("-2");
        }
于 2012-04-22T22:17:09.940 に答える
2

switch ステートメントを使用することもできます。ケース 3 と 5 は同じです

int i = 1;

        switch (i)
        {
            case 1:
                Response.Write("-3");
                break;
            case 3:
            case 5:
                Response.Write("-2");
                break;
        }

お役に立てれば

于 2012-04-22T22:17:24.367 に答える
1

エラーが発生する理由は、何かに対してブール評価を実行しようとしても、ブール方程式に解決されないためです。

if (false || 3)

ここで、「3」はブール方程式に評価されません。

に変更する場合

if (false || 3 == 3)

次に、それが機能することがわかります。

于 2012-04-22T22:20:48.033 に答える