Java-Tutorial für Anfänger, If-Abfrage
lima-city → Forum → Sonstiges → Spam und sonstiges Unvergütetes
abfrage
anweisung
aufnehmen
ausgabe
ball
bedingung
befehl
bereich
code
helfen
kritik
problem
programm
sache
string
system
teil
url
wasser
wassertemperatur
-
Ich habe hier mal ein kleines Tutorial für Anfänger in Sachen Java geschrieben. Das gleiche Tutorial habe ich bereits im Board RR gepostet und ist hier zu erreichen: Tutorial
Ziel dieses Tutorials: Grundlagen vermitteln
Vorraussetzungen: Java installiert, Datentypen schon bekannt und HelloWorld Programme ausgeführt,
Themengebiete: If-Abfragen
Die if-Abfrage
Eine if-Abfrage ist eine Bedingung. Wenn diese Bedingung erfüllt wird, wird ein bestimmter Teil Code ausgeführt. Das heißt, dass das Programm Entscheidungen fällen kann.
Ein kleines Beispiel:
Sie wollen Fußball spielen und besitzen einen Ball. Es kann vorkommen, dass nach längerer Zeit der Ball Luft verliert und sie ihn vorher aufpumpen müssen.
Es gibt also zwei Möglichkeiten.
Entweder: Der Ball ist aufgepumpt und sie können gleich anfangen zu spielen
Oder: Sie müssen erst den Ball aufpumpen und können erst dann anfangen zu spielen.
Wir wollen jetzt ein kleines Programm schreiben, das testet, ob der Ball platt ist oder nicht.
Hier mal die Struktur des Programms:
Code:
Der 'magische' Befehl heißt 'if', 'wenn' auf Englisch.Los | | Ball testen | | wenn aufgepumpt wenn platt | | | ball aufblasen | | SPIELEN! <--
Hinter dem 'if' kommt die Bedingung, die getestet werden soll und danach in {} das, was passieren soll, wenn die Bedingung stimmt.
Code:
if(BEDINGUNG) { ANWEISUNG }
Wenn es sich nur um einen Befehl in der Anweisung handelt, können die geschweiften Klammern ( {} ) auch ausgelassen werden.
Code:
if(BEDINGUNG) ANWEISUNG;
Um auf unser Ball-Problem zurückzukommen. Der Pseudocode sieht bisher so aus:
Code:
if(ball ist platt) { ball aufblasen; } System.out.println("LASS UNS JETZT SPIELEN!");
Der if-Bereich wird nur ausgeführt, wenn der Ball platt ist. Ist dies nicht der Fall, wird auch der Bereich in {} ausgelassen.
Die Ausgabe wird in jedem Fall ausgeführt, da sie sich nicht mehr in dem Bereich der {} befindet.
So, jetzt ist es Zeit, den Pseudocode in richtigen JAVA-kompilierbaren Code zu verwandeln.
Für den 'Status' (platt oder nicht platt) wird ein boolean verwendet.
Im folgenden Beispiel ist der Ball nicht platt, siehe Zeile 5.
Code:
class BallTester { public static void main(String[]args) { boolean platt=false; if(platt==true) { System.out.println("Der Ball ist platt"); platt=false; System.out.println("Der Ball wurde aufgepumpt"); } System.out.println("Lass uns spielen, der Ball ist aufgepumpt"); } }
Da der Ball ja nicht platt ist, wird auch nicht der if-Teil ausgeführt. Wenn man jetzt anstatt platt= false; , platt=true; schreibt, werden folgende Ausgaben erscheinen:
Der Ball ist platt
Der Ball wurde aufgepumpt
Lass uns spielen, der Ball ist aufgepumpt.
Dies war jetzt eine Einführung zu der einzweigigen if-Anweisung, einzweigig, weil es nur den 'if'-Teil gibt, aber der 'else'-Teil fehlt.
Der Befehl 'else' kann nur existieren, wenn es davor einen if Befehl gab.
also:
Code:
if(....) { IRGENDWAS; } else { IRGENDWAS ANDERES; }
Der else-Teil wird ausgeführt, wenn die if-Bedingung falsch war. Bei unserem BallTester kann dies nun so angewendet werden:
Code:
class BallTester { public static void main(String[]args) { boolean platt=false; if(platt==true) { System.out.println("Der Ball ist platt"); platt=false; System.out.println("Der Ball wurde aufgepumpt"); } else System.out.println("Der Ball war schon aufgepumpt"); System.out.println("Lass uns spielen, der Ball ist aufgepumpt"); } }
Hier noch einige Beispiele:
Code:
class WasserTemperaturTester { public static void main(String[]args) { int wasserTemperatur=60; if(wasserTemperatur=>100) System.out.println("Das Wasser kocht!"); else System.out.println("Das Wasser kocht noch nicht."); } }
Ausgabe bei wasserTemperatur=60: Das Wasser kocht noch nicht.
Ausgabe bei wasserTemperatur=120: Das Wasser kocht!
Code:
class NamenTester { public static void main(String[]args) { String name="Thomas"; if(name.equals("Tom")) System.out.println("Die Namen sind identisch"); else System.out.println("Die Namen sind nicht identisch"); } }
Ausgabe bei name="Tom": Die namen sind identisch
Ausgabe bei name="Tim": Die namen sind nicht identisch
/!\ Strings werden mit der Methode equals("...") verglichen und nicht mit ==.
Ich hoffe, dieses Tutorial war soweit verständlich und ich konnte einigen helfen
Beitrag zuletzt geändert: 2.8.2012 3:19:21 von kingofexceptions -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Tutorial, fehlende Diskussionsgrundlage
-> verschoben -
Man kann ja keine Tutorials mehr hinzufügen und um in dieser Zeit trotzdem Usern zu helfen, habe ich das dann halt dort gepostet. Was ist daran so schlimm und immerhin ist das Tutorial glaube ich nicht so schlecht, als dass es als Spam gilt oder?
-
kingofexceptions schrieb:
Man kann ja keine Tutorials mehr hinzufügen und um in dieser Zeit trotzdem Usern zu helfen, habe ich das dann halt dort gepostet. Was ist daran so schlimm und immerhin ist das Tutorial glaube ich nicht so schlecht, als dass es als Spam gilt oder?
Das Spamforum ist nicht der alleinige Mülleimer, sondern auch Platzhalter für Sachen, die zT sinnvoll sind, aber nirgendwo anders hinpassen. Es ist also keine Wertung Deines Tutorials. -
Nichts für ungut, aber If beschränkt sich nicht auf Java. Ich würde das allgemeiner halten...
Außerdem gibts da nicht so viel zu verstehen. Ich meine, ein einfaches If ist schnell erklärt. Also ich würde da nicht so viel Zeit in etwas investieren, das im Internet schon x-hundert-tausend-mal erklärt ist und sich, evtl. in die deutsche Sprache übersetzt, von selbst erklärt...
Außerdem verwirrt dein Tutorial mehr, denn man könnte fragen "Was ist 'Class?'" oder "Was ist 'public static void main'?". Du verwirrst den Leser hier mehr mit objektorientierten Konstrukten als dass du ihm die If-Abfrage näher bringst. Das würde ich eher in einem PHP-Script bzw. einer Batch-Datei erklären. Halt etwas wofür sich der Nutzer nicht erst eine Laufzeitumgebung, einen Compiler, evtl eine Entwicklungsumgebung und und und einrichten muss...
Beitrag zuletzt geändert: 2.8.2012 14:55:59 von schrotti12 -
Dass sich if nicht nur auf JAVA beschränkt, ist mir auch klar. Jedoch sind die kleinen Codes nunmal in JAVA und deswegen ist es auch ein JAVA-Tutorial.
Was die OO-Konstrukts angeht: Du fängst ja auch nicht an, einem Anfänger public, static und class zu erklären, sondern lässt ihn erst einmal ein HelloWorld Programm schreiben und erst dann erklärst du ihm kompliziertere Dinge.
Ich weiß auch, dass dieses Tutorial nicht 100% nützlich ist, aber wenn ich hier Threads sehe, in denen Leute Probleme mit IFs haben, dann denke ich, ist dieses Tutorial nicht ganz unnütz. -
Um deine Tutorials auszuführen müssen aber nichts desto weniger eine Java-Runtime installiert und eine Entwicklungsumgebung vorhanden sein. (weils einfacher ist und ich keinem Anfänger zutrauen will den Java-Compiler mit Class-Path, Packages, etc. auf Konsole auszuführen).
Und wenn jemand Probleme mit ifs hat, sind das schon sehr viele Voraussetzungen.
Wie gesagt... PHP bietet sich da v.a. im Ramen dieses Forums besser an, da ein Editor schon im Web verfügbar ist...
Sprich: Neue Datei anlegen, testen...
Wie gesagt, du kannst gerne Tutorials schreiben, aber ich würde mir die Arbeit nicht antun. V.a. nicht für Sachen, die so schnell erklärt sind...
Beitrag zuletzt geändert: 2.8.2012 15:44:54 von schrotti12 -
kingofexceptions schrieb:
Ok, Kritik verstanden xD
Was hältst du von einem Tutorial zum Screenshot aufnehmen? Mit Mouseposition und Frame Opacity etc?
Wenn du umbedingt ein Tutorial machen willst, warum erstellst du das dann nicht einfach auf deiner Webseite? Da hast du doch viel mehr Gestaltungsmöglichkeiten als hier im Forum. Und wenn du das dann bekannter machen willst, kannst du die Tutorials einfach in deiner Signatur verlinken.
Und ein Screenshot-Tutorial würde mich nicht interessieren. Das kriege ich auch alleine hin -
okok schon verstanden, ich lass mir was besseres einfallen.
-
Nettes Tutorial. Was vielleicht noch eine gute Idee wäre: Die Erklärung der else-if schreibweise als Code
if (boolean1) boolean1 = !boolean1; else if (boolean2) boolean2 = !boolean2; else boolean1 = !boolean2;
falls jemand eine längere Kette bilden will. Man kann natürlich auch { ... } Blöcke benutzen, alles kein Problem.
kennst du auch die for Schleife und vorallem: for each Schleife?
-
Was komplett fehlt sind mehrfach Bedingungen ala:
if(ball == aufgepumt || ball.neuerBallVerfügbar() == true){ doSth(); }else{ if(newBallPrice <= 5.00){ buyBall(amount); ball.setNeuerBallVerfügbar(true); }else{ System.out.println("Ich kann kein Fußball spielen, verdammter Ball") } }
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage