Hier erkläre ich mal wie if im prinzip funktioniert. Das ist absolutes Grundwissen, jedoch sollte man vorher mindestens mal gelesen haben was eine funktion ist.
Dazu muss man erstmal Bool verstehen. Diese mathematik besagt das es nur war und falsch gibt.
Hier:
true und
falsetrue ist hierbei alles was nicht 0 ist. (zb. 1 oder 3)
false ist hierbei alles was 0 ist. (zb. 0)
Die meisten Funktionen() geben werte dieser Art zurück zb diese hier:
- Zitat :
- func Ja(){return(true);}
Bei der if abfrage (Eigentlich bei allem, auch bei while) wird einzig und allein
true oder
false akzeptiert.
Es steht aber etwas komplett anderes da nämlich Ja()
- Zitat :
- if (Ja()) Tuwas();
Der Compiler fragt sich jetzt solange durch die funktion Ja() bis er ein ergebniss hat das
true oder
false lautet. Das Ergebniss kann man in der Funktion mit return angeben.
- Zitat :
- return Ergebniss;
Wir erinnern uns das wir das bereits kennen:
- Zitat :
- func Ja(){return(Ergebniss);}
Der findige Compiler nimmt jetzt das Ja() raus und tauscht es durch das Ergebniss aus, welches er in dem fall bei "return" findet:
- Zitat :
- if (
Ja()true) Tuwas();
Man bezeichnet das ganze so das "Ja() true zurück gegeben hat", wonach true der "Rückgabe wert" ist.
Es kann selbst verständlicherweise auch etwas anderes passieren:
- Zitat :
- func Ja(){ return(false);}
oder:
- Zitat :
- func Ja(){}
Dann sieht das ganze so aus:
- Zitat :
- if (
Ja()false) Tuwas(); //<-Wird nicht ausgeführt da Ja()=false ist
Man kann innerhalb von den if() klammern eigentlich
alles machen. Was sehr gerne gemacht wird sind rechenaufgaben und vergleiche.
- Zitat :
- if (10 > 11) Log("Seltsame Logik :O");
Das funktioniert auf dem selben prinzip, der Compiler ersetzt die Rechnung durch das Ergebniss, welches true oder false sein kann.
Wie in diesem beispiel müsst ihr ungefähr denken:
- Zitat :
- Aufgabe: ist 10 größer als 11?
Lösung: Nein
Schlußfolgerung: Nein heißt falsch, also deutsch für "false"
10>11 = false
- Zitat :
Aufgabe: 10+10
Lösung: 10+10 = 20
Schlußfolgerung: 20 ist nicht 0
demnach ist 20 = true
Hier ein paar beispiele die zeigen was alles möglich ist:
- Zitat :
- if (20-20) Machdas() //20-20 = 0 -> false
if (10>11) Machdas() //10 ist kleiner -> false
if (1) Machdas() //1 ist nicht 0 -> true
if (GetAlive(Clonk)) //wenn clonk lebt -> true, sonst false
Jetzt kommen wir dazu wie man if() noch verwenden kann:
- Zitat :
- if (true) TuDas(); else TuDies();
else bedeutet hier "andernfalls".
Man kann sich das ganze immer wie ein satz vorstellen:
- Zitat :
- if (Hunger()) Essen(); else satt(); = wenn ich Hungere, esse ich. Andernfalls bin ich satt
else führt also den nachstehenden befehl aus, wenn der erste nicht ausgeführt wird (also bei if(false))
- Zitat :
- if (true) WirdAusgeführt(); else NichtAusgeführt();
if (false) NichtAusgeführt(); else WirdAusgeführt();
else ist demnach eine verkürzte schreibweise von solchen dingen:
- Zitat :
- if (Hunger()) Essen();
if (!Hunger()) Satt(); //Das "!" kehrt den wert um. Also aus true wird false und aus false wird true (Wenn Kein Hunger dann Satt)
Wenn man den Wunsch hat mehrere Dinge auszuführen, allerdings dafür keine funktion zu schreiben will kann man dies auch in geschweiften klammern tun:
- Zitat :
- if (Hunger())
{
Essenmachen();
TischDecken();
GabelnHolen();
Essen();
Abräumen();
}
Diese kann man überall und immer einsetzen, sogar sinnlos, in whileschleifen oder nach einem else. Wichtig ist nur das jede geöfnette klammer wieder geschlossen wird!
- Zitat :
- if (Hunger())
{
TuDiesunddas();
{{{{ //<-Sinnlos, aber nicht störend
}}}}
}
else
{
Sattsein();
Schlafen();
}
Das war ein, hoffentlich DAU sicheres, tutorial über if und bool. Wer noch interessiert ist mehr verwendungs möglichkeiten kennen zu lernen kann sich einfach mal die
Operatoren ansehen. Damit kann man schöne dinge machen =)
- Zitat :
- if (true && true) TuDas(); //wenn Wahr und Wahr dann TuDas()