首页 > 解决方案 > 带有 OR 条件的 if 语句逻辑

问题描述

我必须测试一个条件,当 的值dr["QUALITY"].ToString()不是“A”或 的值dr["QUALITY"].ToString()不是“D”时,只应执行 if 块。但是if当值为“A”时执行块代码。

string test = dr["QUALITY"].ToString();
if ((!dr["QUALITY"].ToString().Equals("A")) || (!dr["QUALITY"].ToString().Equals("D")))
{
    dr["QUALITY_GRD"] = Calc_Rank(Convert.ToInt32(dr["QUALITY"].ToString()), 0);
    dr["QUALITY_PT"] = Calc_Grade(dr["QUALITY_GRD"].ToString(), 1);
}
else
{
    dr["QUALITY_GRD"] = "";
    dr["QUALITY_PT"] = "";
}

这里if当值为“A”时执行块代码。我不明白代码有什么问题。请建议。谢谢你!!!

标签: c#if-statementoperators

解决方案


在你的情况下,你的第二部分是什么QUALITY时候- 陈述"A"if

(!dr["QUALITY"].ToString().Equals("D"))

是真的

所以你的代码应该是这样的

string quality = dr["QUALITY"].ToString();
if (quality != "A" && quality != "D")
{
    dr["QUALITY_GRD"] = Calc_Rank(Convert.ToInt32(quality), 0);
    dr["QUALITY_PT"] = Calc_Grade(dr["QUALITY_GRD"].ToString(), 1);
}
else
{
    dr["QUALITY_GRD"] = "";
    dr["QUALITY_PT"] = "";
}

推荐阅读