Das Java-Programm besteht aus einzelnen Anweisungen die hintereinander abgearbeitet werden. Eine einfache Anweisung stellt bspw. die Tastatureingabe oder die Monitorausgabe dar.
Neben der Eingbe von Daten über die Tastatur und der Monitorausgabe, lernst Du in diesem Artikel Variablen, Konstanten und Datentypen kennen. Darüber hinaus wird Dir die Datentypumwandlung und die formatierte Ausgabe erklärt.
Das Java-Programm besteht aus einzelnen Anweisungen die hintereinander abgearbeitet werden. Eine einfache Anweisung stellt bspw. die Tastatureingabe oder die Monitorausgabe dar. Sie wird mit Semikolon ;
abgeschlossen. Ein Anweisungsblock wird in geschweifte Klammern gesetzt. {}
.
Java unterscheidet zwischen Groß- und Kleinschreibung und verwendet den Unicode-Zeichensatz.
Mit Kommentaren kann man im Quelltext den Überblick bewahren. So kann man die Funktionsweise einzelner Teile besser nachvollziehen und im Quelltext nach Begriffen der Kommentare suchen. Einzeilige Kommentare schreibt man mit //
, mehrzeilige mit /* ... */
Datentyp | Größe | Wertebereich |
---|---|---|
byte | 1 Byte | -128 ... 127 |
short | 2 Byte | -32768 ... |
int | 4 Byte | -2.147.483.648 ... |
long | 8 Byte | -9.2E18 ... |
float | 4 Byte | -2.2E9 ... |
double | 8 Byte | -9.2E18 ... |
Eine Variable speichert einen veränderbaren Wert. Der Datentyp der Variable legt die Zahlenart und max. Größe fest. Beachte: Der Name der Variable darf nicht aus Java-Befehlen bestehen.
Numerische Datentypen gibt es für ganze Zahlen (byte
, short
, int
, long
) und für Dezimalzahlen (float
, double
). Man beachte: Je größer der Datentyp, desto genauer sind bspw. die Nachkommastellen, aber desto größer auch der Speicherbedarf.
Bei der Deklaration wird für die Variable ein Speicherplatz reserviert: int x;
.
Dabei ist int
der Datentyp und x
der Name der Variable. Bei der Initialisierung (auch Zuweisung) wird der Variable ein Wert gegeben: x = 1;
.
Beispiele:
long x = 2101;
double pi = 3.14;
Datentyp | Größe | Wertebereich |
---|---|---|
boolean | 1 Byte | true, false |
char | 2 Byte | Unicode Zeichen |
String | 2 Byte pro Zeichen | Unicode Zeichen |
Zeichen werden mit dem Datentyp char
gespeichert. Der Datentyp String
speichert mehrere Zeichen hintereinander (Zeichenketten). Zeichen werden in Hochkomma '
, Zeichenketten in Anführungszeichen "
gesetzt.
Für manche Zeichen gibt es sogenannte Escape Sequenzen, da sie tlw. anderweitig schon belegt sind:
Zeilenumbruch - \n, Tabulator - \t, " - \"
Für Wahrheitswerte gibt es den Datentyp boolean
.
Beispiele:
char zeichen = 'A';
String satz = "\t\"Hallo\" Klasse";
boolean vollstaendig = true;
Autoren: G. Kompa, D. Supper | binnendifferenziert
Im ersten Programm wird die Ausgabe von Worten (Zeichenketten) und Werten getestet. Beim Programmieren muss man auf Klein- und Großschreibung achten (case sensitive).
public class ErsteAusgabe{
public static void main(String[] args){
int zahl = 3;
System.out.println("Die Zahl ist: " + zahl);
}
}
ErsteAusgabe
. Dabei wird die Java-Datei mit dem identischen Namen Ausgabe1.java erstellt.
Hänge mit +
eine weitere Zeichenkette an.
System.out.println(Die Zahl ist: 10");
,System.out.println("Die Zahl ist: " + (zahl+7));
, int zahl = 10;
System.out.println("Die Zahl ist " + zahl + "!");
Autoren: G. Kompa, D. Supper
Für das übersichtliche Programmieren wird nach jeder Klammer {
der Quelltext eingerückt. So bleibt das Programm übersichtlich. In der Abbildung steht der Quelltext für eine Tastatureingabe.
ErsteEingabe
, in der du den Quelltext aus der Abbildung kopierst.
import java.util.Scanner;
public class ErsteEingabe{
public static void main(String[] args){
int zahl;
Scanner keyboard = new Scanner(System.in);
zahl = keyboard.nextInt();
}
}
Wie lernt man?
Der kleine Max soll Blumen kaufen. Mutter sagt: "Du Max, ich habe Blumen beim Gärtner Grün bestellt, hol mir die doch bitte. Ich erklär dir wie du hinkommst: Du gehst die Straße runter, dann rechts, zwei Häuserblock weiter links, dann geradeaus ... Hast du verstanden?" Max antwortet "ja" und geht los. Nach 2 Stunden kommt er ohne Blumenstrauß zurück. Wieso?
Antwort: Die Mutter hat die verkehrte Frage gestellt. Sie hätte Max bitten sollen, den Weg zu wiederholen.
Investiere für dich und deine Freunde in gute Fragen wie bspw.: "Was hast du dir bei dieser Lösung gedacht?"
final double E = 2.7182818284;
final double MWST = 0.19;
int menge = (int)4.124;
double position = 43.24;
int pos = (int)position;
double number = (double)menge+0.5;
Durch die Einführung von Konstanten wird der Quellcode besser lesbar. Sollte sich außerdem bspw. der MwSt-Satz einmal ändern kann man so an einer Stelle im Programm den Wert für alle Berechnung korrigieren. Eine Konstante wird mit dem Schlüsselwort final
definiert.
Datentypumwandlungen (engl. type casting) ermöglichen es für bestimmte Berechnungen oder Ausgaben den Datentyp zu verändern. Durch den in Klammern geschriebenen Datentyp vor dem Wert kennzeichnet man die Typkonvertierung: (int)3.14
.
double pi = 3.14159;
int a = 270;
double b = 11.5;
System.out.printf("Pi = %.3f\n",pi);
System.out.printf("Pi = %5.2f\n",pi);
System.out.printf("%d Äpfel und %d Birnen",a,(int)b);
Folgende Ausgabe wird erzeugt:
Pi = 3,142
Pi = 3,14
270 Äpfel und 11 Birnen
printf(..)
und decimalformat(..)
.
Autoren: G. Kompa, D. Supper | binnendifferenziert
Schreibe ein Programm, dass den Benutzer auffordert die Zeit in Sekunden einzugeben. Der Wert 1089384 entspräche beispielsweise 12 Tagen, 14 Stunden, 36 Minuten und 24 Sekunden.
Uhrzeit
die Eingabe der Sekunden und die Ausgabe der Tage, Stunden, Minuten und Sekunden.Teile den Sekundenwert durch (60*60*24) um die Anzahl der Tage zu bekommen.
Für die übrigen Minuten zu erhalten verwende den Modulo-Operator %
.
int i = 100 / 60; //i = 1, Kommastellen entfallen
int i = 100 % 60; //i = 40, nur der Rest wird angegeben
Wähle die korrekten Aussagen aus.
final double E = 2.7182818284;
System.out.printf("e = %.3f",E);
Gib die korrekte Ausgabe an. Wähle eine Antwort.
final double pi = 3.14159;
System.out.printf("Pi = %5.2f",pi);
Gib den Ausgabetext an. Wähle eine Antwort.
int menge = (int)4.124;
System.out.printf("Anzahl = %d",menge);
Gib den Ausgabetext an. Wähle eine Antwort.
int a = 4; double b = 4.124;
System.out.printf("%d Äpfel und %d Birnen",a,(int)b);
Gib den Ausgabetext an. Wähle eine Antwort.
40 % Rabatt
Nenne den passenden Quelltext. Wähle eine Antwort.
System.out.printf("%d \% Rabatt",(int)40.23);
System.out.printf("%d \% Rabatt", 40.23);
System.out.printf("%d \% Rabatt",(int)41);
System.out.printf("%d \% Rabatt",(double)40.23);
1,23 km
Nenne den passenden Quelltext. Wähle eine Antwort.
System.out.printf("%.2f km",(int)1.23);
System.out.printf("%.2f km",1.2345);
System.out.printf("%f km",(int)1.2332);
System.out.printf("%2f km",(double)1.23);
Autoren: D. Supper | binnendifferenziert
Schreibe ein Programm, für die Ausgabe einer Stromrechnung wie in der Abbildung.
Stromrechnung
. Der Benutzer gibt den Zählerstand am Anfang und Ende des Jahres ein. Erkundige Dich nach den aktuellen Strompreisen und erzeuge eine Ausgabe wie in der Abbildung.Für den aktuellen Strompreis verwende eine Konstante final double PREIS_PRO_KWH = ...;
.
Nutze die Escape-Sequenz \t
, um den Text entsprechend einzurücken.
Das Runden der Zahlen ist erst im zweiten Aufgabenteil zu berücksichtigen.
Nutze die Datentypkonvertierung (engl. cast) um die Werte auf zwei Nachkommastellen zu begrenzen: double x = (int)x * 100;
Autoren: G. Kompa, D. Supper
Kopiere den Quelltext in eine Testklasse Typkonflikte
und korrigiere sowie kommentiere, falls vorhanden, die Typkonflikte. Optional: Gib die Werte der Variablen am Monitor aus.
int x = 3.4;
int y = 4;
char a = 'a';
char b = '54';
String zahl = "8";
String nummer = 8;
String zeichen1 = "4";
String zeichen2 = 'G';
boolean weiche = 1;
double dezimalzahl = "2.5";
Scanner kb = new Scanner(System.in);
Scanner kb = "new Scanner(System.in)";
String kb = "new Scanner(System.in)";
String kb = 'new Scanner(System.in)';
char kb = 'new Scanner(System.in)';
int x = 4;
String y = "5";
double summe = x + y;
int
definiert Ganzzahlen. Der Datentyp char
definiert einzelne Zeichen die in Hochkommas stehen müssen ' '
. Der Datentyp String
definiert Zeichenketten welche in Anführungszeichen stehen müssen " "
.Scanner
ist kein Datentyp. Zeichenketten stehen in Anführungszeichen " "
und einzelne Zeichen in Hochkommas ' '
die Programiersprache Java, -n | Die Programiersprache Java ist eine sogenannte Hochsprache mit der ausführbare Programme für den Rechner geschrieben werden. |
der Quelltext, -e | das geschriebene Programm mit dem Dateityp .java |
die Syntax, - | die Grammatik des Programms |
der Bytecode, -s | Der Bytecode vom Dateityp .class ist ein übersetzter Quelltext. Dieser ist, im Gegensatz zum Maschinencode, für jedes Betriebssystem identisch. |
der Compiler, ~ | Ein Java Compiler übersetzt den Quelltext .java in einen Bytecode .class . |
die Java Virtual Machine | Der Bytecode wird von der Laufzeitumgebung, der "Java Virtual Machine" interpretiert und ausgeführt. |
die Anweisung, -en | Das Programm besteht aus Anweisungen, die mit Semikolon ; abgeschlossen werden. |
der Anweisungsblock, -"e | eine Reihe von Anweisungen die in geschweiften Klammern {...} zusammengefasst werden |
die Variable, -en | Eine Variable speichert einen veränderbaren Wert. Der Name der Variable darf nicht aus Java-Befehlen bestehn und wird klein geschrieben. |
der Datentyp, -en | Der Datentyp legt die Größe und Art der Variable fest. |
die Deklaration, -en | Der Speicherplatz der Variablen wird festgelegt: int x; |
die Initialisierung, -en | Ein Wert wird gespeichert: x = 3; . Dies wird auch als eine Zuweisung bezeichnet. |