A programming concept.

Consider this pseudocode statement.

Result := (Foo.Bar OR Baz.Quux);
Suppose your program is running along, and encounters this statement. It then evaluates Foo.bar, which, for purposes of this example, evaluates to true. Now, what? The program could evaluate Baz.Quux, but whether it evaluates to true or false, the entire expression is true. Consequently, the program can save time by not evaluating the statement.

This can, of course, lead to bugs if the author of a piece of code doesn't expect it, and uses a function with side effects on the right side of the boolean operator to be short-circuited.