使用“?:”模拟短路评估

Using "?:" to emulate short-circuit evaluation

如何使用短路和 ?: 运算符来模拟 foo() || bar()foo() && bar()

我是一名学生,从未使用过 ?: 运算符,想尝试一下。在做了一些谷歌搜索后,我发现它本质上是:

Condition ? (things to do if true) : (things to do if false);

不使用 &&|| 是否可以实现?我正试图掌握短路问题,因为我对它很陌生,而且决赛即将来临!

假设foo()bar()都是returnboolean,那么

foo() || bar()

相同
foo() ? true : bar();

因为foo()先求值,bar()只有在foo()为false时才需要求值。

同样,

foo() && bar()

相同
foo() ? bar() : false;

foo()先求值,bar()只有在foo()为真时才需要求值。