Java Planet

O Javie i jej otoczeniu

Operatory logiczne Short-Circuit

Czasami wiesz, że coś jest prawdą, nie tracąc czasu, aby dowiedzieć się wszystkich szczegółów. Na przykład, jeśli ktoś mówi do ciebie: “Wyjdę na zewnątrz, jeśli świeci słońce lub …”, to nie ma znaczenia co jest po LUB -i tak dalej, jak wiesz, że jest słonecznie. Program w Javie robi to samo.
Jednak nie każdy wie, że w Javie mamy dwa rodzaje operatorów AND i OR.

<pre>
public class Logical {

	public static boolean getTrue() {
		System.out.println("getTrue");
		return true;
	}

	public static boolean getFalse() {
		System.out.println("getFalse");
		return false;
	}

	public static void main(String[] args) {
		System.out.println("---- Operator OR ----");
		// getTrueWykona się tylko raz
		System.out.println("1: " + (getTrue() || getTrue()));
		// getTrueWykona się dwa razy
		System.out.println("2: " + (getTrue() | getTrue()));
		// getTrueWykona się dwa razy
		System.out.println("3: " + (getTrue() | getTrue() || getTrue()));

		System.out.println("---- Operator AND ----");
		// getFalse wykona się tylko raz
		System.out.println("4: " + (getFalse() && getFalse()));
		// getFalse wykona się dwa razy
		System.out.println("4: " + (getFalse() & getFalse()));
	}
	/*
	 * REZULTAT:
			---- Operator OR ----
			getTrue
			1: true
			getTrue
			getTrue
			2: true
			getTrue
			getTrue
			3: true
			---- Operator AND ----
			getFalse
			4: false
			getFalse
			getFalse
			4: false
	 */

}

Tak więc operatory takie jak && oraz || nazywane są czasem operatorami “short-circuit” (ang. zwarcie obwodu)
Natomiast operatory & oraz | są operatorami zwykłymi, które mozolnie liczą wszystkie składniki wyrażenia logicznego.

You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.

COMMENTS

No Comments

There are no comments posted yet. Be the first one!

Leave a Replay