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

C#条件分支问题:非39尺寸无控制台输出的修复咨询

修复C#条件分支失效问题并实现场景化提示

问题根源

  1. 分支顺序覆盖导致无效分支:原代码中else if(size <=38)和else if(size >=40)已经覆盖了所有非39的尺寸,第四个分支的(size <=38 || size >=40)条件永远不会被触发——程序会优先匹配前面的分支,根本轮不到这个分支执行。
  2. 逻辑判断错误:(color != "black" || color != "blue")这个条件恒为真,任何颜色不可能同时等于black和blue,所以这个判断完全无效,应该用&&来表达“颜色既不是黑也不是蓝”。
  3. 缺少默认分支:当尺寸为39且颜色符合偏好时,没有对应的输出分支,导致无内容输出。

修复后的代码

using System;

namespace deez
{
 class Hello
 {
    static void Main(string[] args)
    {
            int size = 39;
            string color = "black";
            
            // 完美匹配:尺寸40且颜色为黑/蓝
            if (size == 40 && (color == "black" || color == "blue"))
            {
                Console.WriteLine("ok, i'm gonna take it");
            }
            // 尺寸过小:≤38,无论颜色
            else if (size <= 38)    
            {
                Console.WriteLine("it's a little too small but i'm gonna take it anyways");
            }
            // 尺寸过大:≥41,避免和完美匹配的size=40冲突
            else if(size >= 41)
            {
                Console.WriteLine("it's a little too big but i'm gonna take it anyways");
            }
            // 尺寸合适(仅剩下39)但颜色不符合偏好
            else if (color != "black" && color != "blue")
            {
                Console.WriteLine("the size is fine but i would prefer another color");
            }
            // 尺寸39且颜色符合偏好的最优场景
            else
            {
                Console.WriteLine("this is perfect, i'll take it");
            }

            Console.ReadLine();
    }
 }
}

修改说明

  • 把原size >=40的分支调整为size >=41,避免和第一个分支的size=40重复判断,确保完美匹配的场景优先触发。
  • 修正颜色判断逻辑为color != "black" && color != "blue",准确筛选出不符合偏好的颜色。
  • 增加默认else分支,覆盖尺寸39且颜色符合偏好的场景,保证所有输入情况都有对应的提示。
  • 优化分支顺序,让逻辑更清晰,每个场景都能被正确命中。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 01:09:50