Java wan muss ich eine geschweifte klammer setzen woran merke ich des?
Danke für die hilfe
3 Antworten
- du benutzt geschweifte Klammern um Funktions- oder Schleifenblöcke einzuklammern
Auch hier:
Die Beschreibung von Blockanweisungen ist rekursiv, das bedeutet, Aufruf einer Funktion durch sich selbst.
Mal ein Beispiel:
- Dies ist ein gültiges Java–Programm. Im Klassenkörper ist die Methode main enthalten. In deren Methodenkörper sind zwei ineinander verschachtelte Blöcke enthalten.
- Der Klassenkörper wird auch durch geschweifte Klammern abgegrenzt, sieht also genauso aus wie ein Blöcke aus. Er ist aber dennoch kein Anweisungsblock, da er keine Anweisungen sondern nur Definitionen enthalten darf:
public class DemoBlock { // hier startet der Klassenkörper
public static void main( String[] args )
{ // hier startet der Methodenkörper
; // Leere Anweisung
{ // hier startet Block 1
{ // und hier startet Block 2
System.out.println("Hallo, Welt !");
} // hier endet Block 2
} // hier endet Block 1
} // hier endet der Methodenkörper
{ // hier startet der Klassenkörper
Auch: https://www.wire.tu-bs.de/lehre/eip\_static/eiptext/kap9.pdf
Faustregel: immer dann, wenn du einen eingerückten Block hast.
Es gibt immer einen Head (so nenne ich es zumindest) und einen Rumpf. Im Head wird der Aufruf o. ähnl. deklariert, im Rumpf steht das, was dann tatsächlich aufgerufen wird.
Also:
Head {
//Rumpf
}
Beispiele: (Das Schräge ist immer der Head, alles fette ist zwingend, der Rest ist optional, die Rümpfe lasse ich leer.)
- Klassen
public class MeineKlasse extends WasAnderes implements MehrZeug {
}
- Methoden
//Beispiele:
public static void main(String[] args) {
} //eine Mainmethode
public void meineMethode() {
}
private int getIrgendEineZahl() {
return eineZahl;
}
//Allgemein:
Sichtbarkeitsebene static/abstract/etc Rückgabewert methodenName(parameter) {
Methodenaufrufe;
}
Sichtbarkeitsebene: public, private, protected etc
static/abstract/etc: optionales Argument
Rückgabewert: im Normalfall void
Parameter: was man der Methode übergeben muss
- Schleifen
for(int i=0; i<eineZahl; i++) {
}
for(int i:intArray) {
}
while(Bedingung) {
}
do {
} while(Bedingung);
- try-catch-Struktur
try {
wasRiskantes();
} catch(Exception ex) {
}
- if-else-Struktur
if(Bedingung) {
}
if(Bedingung) {
} else {
}
- switch-case-Struktur
switch(meinChar) {
case('a'): {}
case('b'): {}
}
In Java muss zu Beginn und Ende jedes Block geschweifte Klammer.
Blöcke sind Klassen, Methoden, Schleifen, bedingte Blöcke etc.
im Prinzip lernen: jede Klasse, jede Methode, nach if, nach else usw., nach for(...), while (...), etc.
Was sind blöcke woran merke ich das?