2017-02-08 2 views
-7

Klasse Beispielich ein Anfänger in Java bin, habe hier stecken ... Als ich ein Fehler zu nennen versucht Block aufgetreten

public static void main (String  ARGS[]){ 
     Block: { 
         System.out.println("hi"); 
         } 
    Block; 
      } 

mir jemand helfen könnte .. mir den Grund n Konzept zu sagen, warum m Fehler bekommen und ist es lösbar? Oder m in die falsche Richtung gehen ..

+0

Warum nach unten ... Könnte jemand aussortieren erklären mir n n mir helfen, das Konzept statt downwarding zu verstehen. M ein Neuling in Java. – ZUKA

+0

Es ist nicht lösbar. Und ja, du gehst in die falsche Richtung. –

+0

@Thomas Aber mit break und continue erreichen wir diesen Block – ZUKA

Antwort

-3

Java 7 ermöglicht String als der Schalter. Eine Enum-Problemumgehung mithilfe von MyEnum.valueOf (str) kann durchgeführt werden. Ein Schalter auf den Hashcode des Zeichens (oder des Gegenstandes) plus etwas mehr wenn-dann-sonst wenn möglich ist aber nur für viele Möglichkeiten sinnvoll, in welchem ​​Fall das Ganze vermutlich wegen einer Überholung fällig ist.

+0

Meine Frage ist, können wir rufen – ZUKA

+0

in diesem Fall, ja, nach dem Handbuch: Ein Block ist eine Sequenz von Anweisungen, lokalen Klassendeklarationen und lokalen Variablen Deklaration Anweisungen in geschweiften Klammern. Block: {BlockStatementsopt} BlockStatements: BlockStatement BlockStatements BlockStatement BlockStatement: LocalVariableDeclarationStatement ClassDeclaration Statement –

0

Nein, das geht nicht. Das Beschriften eines Codeblocks ist keine gültige Syntax in Java. In einigen Programmiersprachen wie C ist es gültig. Sie können das Schlüsselwort goto verwenden, um die Ausführung auf den mit diesem Label gekennzeichneten Code zu verschieben. Aber in Java, nein. Du kannst nicht. Für Ihre andere Frage, warum es nicht erlaubt ist, können Sie SO nach alten Antworten suchen.

+0

downvoter, was mit dieser Antwort falsch ist? Denkst du, die Antwort lautet "Ja, es ist erlaubt"? – VHS

+0

Blöcke sind mit Pause und weiter .. so können wir Frage ist diese – ZUKA

+0

@ ShubhamMaheshwari, "Pause" und "weiter" sind Schlüsselwörter speziell für Schleifen. – VHS

0

Das würde die Verwendung des Schlüsselwortes goto erfordern, das in Java nicht verfügbar ist, weil es zu Spaghetti Code führen kann. Ein gut strukturiertes Programm sollte solche Blöcke nicht benötigen. Für mehr auf, warum schlecht die goto ist, lesen Sie:

http://www.drdobbs.com/jvm/programming-with-reason-why-is-goto-bad/228200966

+1

Downvoting sollte eine Erklärung erfordern. – SirVirgin

+0

Ich würde niemals jemanden dafür stimmen, dass er mir eine Antwort/Meinung gegeben hat, es sei denn, es war falsch. –

+0

Das ist ym gefragt, ob wir nicht verwenden können, können wir rufen – ZUKA

-1

Block-Methoden automatisch aufgerufen werden, wenn wir die Klasse in JVM geladen werden, werden zuerst die Blöcke werden ausgeführt, dann werden Haupt Methode auszuführen. Wie

 
public class ConstructorBlockExample{ 

    { 
     System.out.println("This is first constructor block"); 
    } 

    public ConstructorBlockExample(){ 
     System.out.println("This is no parameter constructor"); 
    } 

    public ConstructorBlockExample(String param1){ 
     System.out.println("This is single parameter constructor"); 
    } 

    public ConstructorBlockExample(String param1, String param2){ 
     System.out.println("This is two parameters constructor"); 
    } 

    { 
     System.out.println("This is second constructor block"); 
    } 

    public static void main(String[] args){ 
     ConstructorBlockExample constrBlockEx = 
        new ConstructorBlockExample(); 
     ConstructorBlockExample constrBlockEx1 = 
        new ConstructorBlockExample("param1"); 
     ConstructorBlockExample constrBlockEx2 = 
        new ConstructorBlockExample("param1", "param2"); 
    } 
} 

und Output ist

 
This is first constructor block 
This is second constructor block 
This is no parameter constructor 
This is first constructor block 
This is second constructor block 
This is single parameter constructor 
This is first constructor block 
This is second constructor block 
This is two parameters constructor 

Und Sie können für einen Block verwenden Etikett, aber es meist verwendet zu brechen oder die Schleife in Block wie weiter:

 
outer: 
for(int i=...){ 
    for(int j=..){ 
    ... 
    break outer; // leaves both loops 

    } 

} 
+0

In der Hauptmethode fragte ich nicht von Klasse – ZUKA

+0

Ich gab Ihnen nur das komplette Java-Programm, um zu sehen, wie der Block arbeiten, es ist auch eine Hauptklasse und es enthält Haupt() Methode und Sie können die Ausgabe dieser Klasse sehen und dann vorstellen, Ausgabe Ihres Codes – hEmAnT

+1

U verstehen nicht meine Frage – ZUKA

-1

https://docs.oracle.com/javase/specs/jls/se7/html/jls-14.html

Ein Block wird ausgeführt, indem jede lokale Variablendeklaration ausgeführt wird Ration Aussagen und andere Aussagen in Reihenfolge von Anfang bis Ende (von links nach rechts). Wenn alle diese Blockanweisungen normal abgeschlossen werden, wird der Block normal beendet. Wenn eine dieser Blockanweisungen aus irgendeinem Grund abrupt beendet wird, wird der Block aus dem gleichen Grund abrupt beendet.

enter image description here

+1

Die Frage ist, können wir Funktion nennen – ZUKA

Verwandte Themen