zur vorherigen Seite   zum Inhaltsverzeichnis   zur nächsten Seite

Antwort:

Der Boole'sche Ausdruck ist true

34 > 2   ||   5 == 7
------        -----
 true         false
   --------------
       true

da alles was OR benötigt ein true ist.

Autokauf-Programm

Der oben stehende Ausdruck ergibt true, da mindestens ein Operand true war. Tatsächlich wissen wir, dass sobald das erste true ermittelt ist, der gesamte Ausdruck true sein muss, da true ODER irgendwas true ist.

34 > 2   ||   5 == 7
------        -----
 true         spielt keine Rolle
   --------------
       true

Aus Gründen der Optimierung wertet Java einen Ausdruck nur soweit aus wie es nötig ist, um den Wert zu bestimmen. Wenn das Programm läuft, sobald gefunden wird, dass 34 > 2 true ist, wird der gesamte Ausdruck true sein und die Auswertung wird beendet. Dieser Typ von Optimierung wird Short-Circuit Auswertung genannt. (Genauso wie bei AND.)

Hier ist ein vollständiges Java Programm, das die Autokauf-Entscheidung implementiert.

// Sportwagenkauf
//
// Sie brauchen $25000 in bar oder auf Kredit
//
import java.util.Scanner;

class Autokauf
{
  public static void main (String[] args)
  {
    Scanner scan = new Scanner( System.in );
    int bargeld, kredit;

    // Bargeld holen
    System.out.print("Wie viel Bargeld haben Sie? ");
    bargeld = scan.nextInt() ;

    // Kreditrahmen holen
    System.out.print("Wie viel Kredit haben Sie? ");
    kredit = scan.nextInt() ;

    // überprüfen, dass mindestens eine Bedingung erfüllt ist
    if ( bargeld >= 25000  ||  kredit >=  25000 )
      System.out.println("Genug, um dieses Auto zu kaufen!" );
    else
      System.out.println("Wie waere es mit einem Mofa?" );

  }
}

Wir kompilieren das Programm und lassen es mit verschiedenen Werten von bargeld und kredit laufen, um zu sehen wie OR funktioniert.

FRAGE 19:

Was macht das Programm, wenn der Anwender negative Zahlen eingibt?