处理两个条件的最简单方法

-5 c++ if-statement

这与之前的问题相同,但在描述那里的问题时我犯了很多错误.所以我再试一次.请原谅我的术语.这可能是错的.我是编程新手.

我有两个对象指针(我认为)A和B. 他们看起来有点像这样:

Class1* A = Blah->Method1();
Class2* B = A->Method2(); 
Run Code Online (Sandbox Code Playgroud)

我必须在执行一些代码之前检查这些是否存在.以下是条件:

  • A和B都存在:执行Action1和Action2
  • 其中一个存在,其中一个为null:仅执行Action1
  • 两者都为null:仅执行Action1

这是我到目前为止的代码:

if (A){
/*some code here. B is created here */
    if (B){
        // Perform action1. Action1 always comes before Action2
        // Perform action2
    }
}
else{
    //Perform action1
}
Run Code Online (Sandbox Code Playgroud)

这适用于4个案例中的3个.当A存在但B为空时失败.

我怎样才能改善这个?(如果可能的话,同时保持//Perform Action 1在最里面的if.其他建议也是受欢迎的.)

谢谢.

mea*_*gar 6

  • A和B都存在:执行Action1和Action2
  • 其中一个存在,其中一个为null:仅执行Action1
  • 两者都为null:仅执行Action1

所以,真的,你想要:

action1();

if (a && b) {
  action2();
}
Run Code Online (Sandbox Code Playgroud)

你的标准总是涉及调用action1; 它没有理由被一个人守卫if.然后,您调用action2如果两个ab发现.