You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C# if条件判断失效求助:始终返回鹦鹉结果需修复

问题修复方案

问题根源

  1. if语句后的分号直接导致逻辑失效:每个if(条件);末尾的分号会让if仅执行一个空语句,后续的{}代码块会无条件执行。四个代码块顺序执行时,最后一个总会覆盖前面的赋值,所以无论条件如何,最终都会显示鹦鹉对应的背景图。
  2. 逻辑与运算符使用错误:C#中逻辑与的正确运算符是&&,&是按位与运算符,虽然布尔值比较时结果可能一致,但&&支持短路求值(前面条件不满足时直接跳过后续判断),更高效且符合编码规范。
  3. 多条件判断未用else if:四个独立的if会依次执行,即使前面的条件满足,后面的代码仍会覆盖结果,改成else if可在匹配到第一个满足的条件后停止后续判断。

修复后的代码

if (mouse > dog && mouse > cat && mouse > parrot)
{
    this.BackgroundImage = Animal_Personality_Test.Properties.Resources.a;
}
else if (dog > mouse && dog > cat && dog > parrot)
{
    this.BackgroundImage = Animal_Personality_Test.Properties.Resources.b;
}
else if (cat > mouse && cat > dog && cat > parrot)
{
    this.BackgroundImage = Animal_Personality_Test.Properties.Resources.c;
}
else if (parrot > mouse && parrot > dog && parrot > cat)
{
    this.BackgroundImage = Animal_Personality_Test.Properties.Resources.d;
}

补充说明

如果存在多个数值相等的场景(比如mouse和dog数值相同且均为最大值),当前代码不会匹配任何条件,可根据需求添加else分支处理这种情况。

内容的提问来源于stack exchange,提问作者Puro

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 22:05:22