Java方式的逻辑组合:如果第一种情况已经假,则不要测试第二种情况

jak*_*b-r 1 logic r

我知道在Java中,做这样的事情通常很方便

if(a!=0 && b/a>1){
  ...;
}
Run Code Online (Sandbox Code Playgroud)

当第一部分已经为假时,Java会停止.R不这样做,有时会产生错误.那么:是否有可能缩短此代码:

if(exists("user_set_variable")){
   if(user_set_variable < 3){
      ...
   }
}
Run Code Online (Sandbox Code Playgroud)

Chr*_*lor 5

当第二个参数不需要评估时,R也会使&&||运算符短路.例如(这里x不存在)

> if (exists('x') && x < 3) { print('do this') } else { print ('do that') }
[1] "do that"
Run Code Online (Sandbox Code Playgroud)