V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
superhreo123
V2EX  ›  问与答

有 A、B 两个条件,至少有一个为真的情况下继续执行相应的逻辑。若同时为真,只执行同时为真的逻辑。这样的逻辑怎样实现才算优雅

  •  
  •   superhreo123 · 2021-05-10 11:30:19 +08:00 · 747 次点击
    这是一个创建于 1329 天前的主题,其中的信息可能已经有所发展或是发生改变。
    if A == true {
    //执行 A 的逻辑
    }

    if B == true {
    //执行 B 的逻辑
    }

    if A == true && B == true {
    //执行其他逻辑
    }
    7 条回复    2021-05-11 08:55:06 +08:00
    uselessVisitor
        1
    uselessVisitor  
       2021-05-10 12:37:17 +08:00
    这不就挺清晰的,能看明白就行
    superhreo123
        2
    superhreo123  
    OP
       2021-05-10 13:21:39 +08:00
    @beichenhpy 上面那种写法,如果 A 和 B 同时为 true,就会执行 A 的逻辑和 AB 逻辑。是不对的
    siweipancc
        3
    siweipancc  
       2021-05-10 13:38:36 +08:00 via iPhone   ❤️ 1
    你把第三个判断提升到顶然后里边塞个 return 或已处理标志不就好了,c 语言上机课的经典例题 orz
    msg7086
        4
    msg7086  
       2021-05-10 16:28:11 +08:00 via Android
    先写#3 然后 else if #1 else if #2 不就行了。
    3 个分支必然有 3 个 block,又不能省代码。
    zxCoder
        5
    zxCoder  
       2021-05-10 16:37:45 +08:00
    @superhreo123 先判 a && b 的逻辑
    revlis7
        6
    revlis7  
       2021-05-10 23:37:04 +08:00
    switch(true)

    case A && B
    break;
    case A
    break;
    case B
    break;
    treblex
        7
    treblex  
       2021-05-11 08:55:06 +08:00
    if A == true && B == true {
    //执行其他逻辑
    return
    }

    if A == true {
    //执行 A 的逻辑
    return
    }

    if B == true {
    //执行 B 的逻辑
    return
    }
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1007 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 18:53 · PVG 02:53 · LAX 10:53 · JFK 13:53
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.