Anzeige:
Ergebnis 1 bis 3 von 3

Thema: Variableninitialisierung bei switch-Funktion

  1. #1
    Registrierter Benutzer Avatar von Waxolunist
    Registriert seit
    19.06.2006
    Ort
    Wien
    Beiträge
    485

    Variableninitialisierung bei switch-Funktion

    Hallo

    Bin heute auf was interessantes gestoßen und verstehe es nicht. Manchmal ist es schon seltsam, da beschäftigt man sich mit den kompliziertesten Frameworks und dann scheitert man an einer einfachen Switch-Anweisung.

    Wieso funktioniert folgendes:

    Code:
    public class Switch {
    
    	public static void main(String[] args) {
    		
    		int i = 1;
    		
    		switch(i) {
    			case 0:
    				String s = "test";
    				System.out.println(s);
    			break;
    			case 1:
    				s = "test";
    				System.out.println(s);
    			break;
    		}
    		
    	}
    }
    Wieso muss ich nur einmal die Variable s angeben. Ich dachte switches sind nichts anderes als einfache if-else-Angaben.

    Also mit if else würde es so aussehen:

    Code:
    public class Switch {
    
    	public static void main(String[] args) {
    		
    		int i = 1;
    		
    		if (i == 0) {
    			String s = "test";
    			System.out.println(s);
    		} else if (i == 1) {
    			String s = "test";
    			System.out.println(s);
    		}
    		
    	}
    }
    Wie werden denn Variablen in Switch-Anweisungen initialisiert? Werden die zur Compilezeit alle initialisiert?

    mfg, christian
    Spezialitäten heute: PLSQL, TSQL, Java (alles mit Webanwendungen), Groovy, Grails, ASP.NET, Javascript, Python, Django
    Straight through, ohne Umwege ans Ziel

  2. #2
    Registrierter Benutzer
    Registriert seit
    29.09.2006
    Ort
    Helsinki
    Beiträge
    154
    Moin,

    ich hab' mir angewöhnt, in solchen Grundsatzfragen in die Language Specification zu schauen, z.B. hier:

    http://java.sun.com/docs/books/jls/t...nts.html#14.11

    oder

    http://java.sun.com/docs/books/jls/t...gn.html#16.2.9

    So wie ich Dich einschätze, kannst Du mit der technischen Darstellung gut leben... ;-)

    So long,

    Liberty
    Friedliebender Soldat im ganz persönlichen Auslandseinsatz

  3. #3
    Registrierter Benutzer Avatar von Waxolunist
    Registriert seit
    19.06.2006
    Ort
    Wien
    Beiträge
    485
    Danke, sollte ich mir vielleicht auch angewöhnen. Hat aber Klärung gebracht.
    Spezialitäten heute: PLSQL, TSQL, Java (alles mit Webanwendungen), Groovy, Grails, ASP.NET, Javascript, Python, Django
    Straight through, ohne Umwege ans Ziel

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •