short-circuit evaluation

Short-circuit evaluation of some logical operators in some programming languages is the semantics in which the second argument is evaluated only if the first argument does not suffice to determine the value of the expression: when the first argument of the AND expression evaluates to false, the overall value must be false; and when the first argument of the OR expression evaluates to true, the overall value must be true.
```
#include <iostream>

int main() {
    int I = 1, J = 1, K = 1;
    ++I || ++J && ++K;
    std::cout << I << J << K; //211
}
```