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

软件工程师笔试题:移除||运算符后保持原代码输出一致的实现方法

替代多条件||判断的几种可行方案

嘿,别懊恼当时没答出来!这道题其实是在考察你对条件判断优化和集合/分支语句特性的理解,咱们直接上解决方案,保证和原逻辑完全一致,还彻底移除了所有||运算符:


方案1:利用集合(首推)

把所有合法的类型值存入一个集合,然后判断输入的type是否属于这个集合——这是最简洁也最易维护的方式,后续要新增合法类型只需要往集合里加元素就行,不用改判断逻辑。

伪代码示例:

// 初始化合法类型集合
valid_types = {"string", "int", "char", "double"}
// 判断并返回结果
return type in valid_types

不同语言的具体实现:

  • Python:return type in {"string", "int", "char", "double"}
  • Java:return Set.of("string", "int", "char", "double").contains(type);
  • JavaScript:return ["string", "int", "char", "double"].includes(type);

方案2:使用Switch分支语句

如果你的语言支持Switch的穿透特性(多个Case共享同一逻辑),也可以用这种方式,完全避开||:

以Java/C#为例:

switch(type) {
    case "string":
    case "int":
    case "char":
    case "double":
        return true;
    default:
        return false;
}

C语言里可以先把字符串映射成枚举值再用Switch判断,核心逻辑和上面一致。


方案3:三元运算符嵌套(仅作思路参考,不推荐)

这种方式虽然能实现需求,但可读性差、维护成本高,除非特殊场景不建议使用:

// C语言示例,用strcmp比较字符串
return (strcmp(type, "string") == 0) ? true :
       (strcmp(type, "int") == 0) ? true :
       (strcmp(type, "char") == 0) ? true :
       (strcmp(type, "double") == 0) ? true : false;

以上三种方案都能100%还原原代码的逻辑,而且完全移除了||运算符,其中方案1是最优解,不管是可读性还是扩展性都拉满。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 08:29:47