Logische Operatoren: und
Manchmal genügt eine Bedingung nicht. „Ich kaufe die Turnschuhe, wenn sie weniger als 2000 kosten und meine Größe haben“ besteht aus zwei Bedingungen, die das Wort „und“ verbindet. In C ist das der Operator && (zwei &-Zeichen hintereinander). Lies ihn als „und“:
int preis = 1800;
int groesse = 42;
if (preis < 2000 && groesse == 42) {
printf("Ich kaufe die Turnschuhe\n");
}Das gibt Folgendes aus:
Ich kaufe die Turnschuhe&& ist ein logischer Operator: Er verbindet zwei Bedingungen zu einer. Die verbundene Bedingung ist nur wahr, wenn beide Teile wahr sind. Ist auch nur einer falsch, ist die ganze Bedingung falsch:
true && trueisttruetrue && falseistfalsefalse && trueistfalsefalse && falseistfalse
Du kannst auch mehr Bedingungen hintereinander verbinden: a && b && c ist nur wahr, wenn alle drei wahr sind.
Jeder Teil muss ein vollständiger Vergleich sein. „Alter von 13 bis 19“ ist alter >= 13 && alter <= 19. Wenn du es so abkürzt, wie wir sprechen, zu alter >= 13 && <= 19, meldet der Compiler error: expected expression, weil er nicht weiß, was <= 19 vergleichen soll. Auch die mathematische Schreibweise 13 <= alter <= 19 funktioniert nicht. Dafür meldet der Compiler error: chained comparison 'X <= Y <= Z' does not behave the same as a mathematical expression: Vergleiche so zu verketten bedeutet in C nicht, was es in der Mathematik bedeutet.
So schreibst du es:
Anweisungen
- 1
In einem Spiel wird das nächste Level freigeschaltet, wenn du mindestens
100Punkte und gleichzeitig mindestens3Sterne hast. Schreibe anstelle des Kommentars eineif-Anweisung, dieNächstes Level freigeschaltetnur ausgibt, wennpunktemindestens 100 undsternemindestens 3 ist. Verbinde die beiden Vergleiche mit&&. - 2
Füge einen
else-Zweig hinzu, derDu brauchst 100 Punkte und 3 Sterneausgibt. Ändere dannsternein2. Ein falscher Teil genügt, um die ganze Bedingung falsch zu machen, also gibt das ProgrammDu brauchst 100 Punkte und 3 Sterneaus.