switch-case

Status
Nicht offen für weitere Antworten.

Java-Problems

Bekanntes Mitglied
Hallo zusammen,
wenn ich in einer switch-case anwendung im case 1 eine arraylist erzeuge und mit objekten fülle,
wie kann ich diese dann in case 2 aufrufen? geht das überhaupt?
Oder muss ich den Konstruktor außerhalb aufrufen?
 

ARadauer

Top Contributor
dein name alleine schon... du hast von grund auf eine negative einstellung zum thema und willst es wohl gar nicht verstehen!

jetzt mal private, public aussen vorgelassen...irgendwie ist es ganz einfach, wenn ich eine variable definiere, ist sie nach aussen nicht sichtbar, nach innen schon....
wenn ich eine object variable definiere, ist in einer methode sichtbar,
wenn ich eine variable in einer methode definiere, ist sie weiter innen, in einer schleife, swtich block sichtbar, in einer anderen methode aber nicht...
wenn ich eine nariable in einem zb if block definiere, ist sie in der selben methode ausserhalb des blockes nicht sichtbar...

also definierst du die variable einfach nicht in deinem switch block, sondern machst eine objektvarialbe....

Code:
package test;

import java.util.Scanner;

public class Test {
   Scanner s = new Scanner(System.in);
   
   String wert = "";
   
   public static void main(String[] args) {
       Test t = new Test();
       for(int i = 0; i <10; i++){
          t.eingabe();
          t.ausgabe();
       }
   }
   
   private void ausgabe() {
     System.out.println("wert ist: "+wert);
      
   }

   public void eingabe(){
      System.out.println("Zahl eingeben");
      int i = s.nextInt();
      switch (i) {
      case 1:
         wert = "eins";
         break;
      case 2:
         wert = "zwei";
         break;
      case 3:
         wert = "drei";
         break;
      case 4:
         wert = "vier";
         break;

      default:
         wert = "nix";
         break;
      }
   }

}
 

0x7F800000

Top Contributor
geht das überhaupt?
selbstverständlich nicht, was soll das denn auch für einen sinn machen. swich ist doch ein langes entweder oder. Was du im ersten case initialisiert hast, wird im zweiten nie gebraucht, weil ja das erste case eingetreten ist...

Äääh, ARadauer, könntest du mal sagen was dieses komische beispiel da sollte? :confused:
 

Java-Problems

Bekanntes Mitglied
ja danke, dass es so geht wusste ich auch.
ich dachte nur, dass es evtl. auch einen anderen Weg gibt in case 2 das in case 1 erstellte Objekt aufzurufen, da ich mir dadurch erheblich arbeit gespart hätte...
 

ARadauer

Top Contributor
vielleicht hilft dir das...

Code:
public class Test {

   int z = 8;
   
   public static void main(String[] args) {
     Test t = new Test();
     t.doSomething();
   }
   
   private void doSomething() {
      int x = 5;
      System.out.println(z); //ist hier natürlich sichtbar
      if(true){
         int y = 6;     
         System.out.println(x); //klar ist x hier sichtbar
         
         System.out.println(z); //ist hier natürlich sichtbar
      }
     // System.out.println(y); // y kann hier nicht sichtbar sein.. fehler
      doSomethingOther();
   }
   
   private void doSomethingOther() {
     // System.out.println(x); // natürlich nicht sichtbar
      int x = 99; 
      System.out.println(x); //jetzt schon, das ist aber ein anderes x als das von doSomething
      
      System.out.println(z); //ist sichtbar
      int z = 33; //das ist jetzt eine lokale variable und hat nichts mehr mit dem des objekts zu tun
      printTheZ(); //das wird die 8 ausgeben
      System.out.println(z); //das die 33            
   }
   
   private void printTheZ() {
      System.out.println(z);
   }

}

bzw Kapitel 6 nochmal genau durchlesen
Galileo Computing :: Java ist auch eine Insel – 6 Eigene Klassen schreiben
 

ARadauer

Top Contributor
selbstverständlich nicht, was soll das denn auch für einen sinn machen. swich ist doch ein langes entweder oder. Was du im ersten case initialisiert hast, wird im zweiten nie gebraucht, weil ja das erste case eingetreten ist...

Äääh, ARadauer, könntest du mal sagen was dieses komische beispiel da sollte? :confused:

´hab mir gedacht, dass er sicher irgendwein auswahl menu mit switch case hat und jetzt zb in der zweiten auswahl das in der ersten erstellte objekt anzeigen möchte...
 

0x7F800000

Top Contributor
swich case ist für jegliche erdenkliche menus schonmal unbrauchbar... Das verführt schnell zu hardgecodeten Optionen :eek:
 

0x7F800000

Top Contributor
Von "jedem" swich-case habe ich nichts gesagt. Aber sowas wie:
Code:
swich(option){
  case 1:{
     //5 Zeilen
  }break;
  case 2:{
     //35 Zeilen
  }break;
  case 3:{
     //170 Zeilen
  }break;
  case 4:{
     //23 Zeilen
  }break;
  case 5:{
     //9 Zeilen
  }break;
  case 6:{
     //19 Zeilen
  }break;
kann in der anfangsphase schnell hingeschmiert werden, wenn man nicht dasselbe mit Interfaces erledigen will, und das resultiert dann im totalen chaos...

youtube will nicht?
 

Wildcard

Top Contributor
selbstverständlich nicht, was soll das denn auch für einen sinn machen. swich ist doch ein langes entweder oder. Was du im ersten case initialisiert hast, wird im zweiten nie gebraucht, weil ja das erste case eingetreten ist...
Kann man so aber nicht stehen lassen, da ein Switch fall-through ist.
 

0x7F800000

Top Contributor
Kann man so aber nicht stehen lassen, da ein Switch fall-through ist.
Stimmt natürlich. Aber trotzdem macht das, was der OP vorhatte, immer noch keinen Sinn.

Also, gegen breaks hast du also was, bei diesem case-fall-through meinst du dennoch nicht, dass das ein kleines schmutziges Geheimnis wäre, das vergessen werden sollte? ;)
seltsam seltsam... :D
 
Zuletzt bearbeitet von einem Moderator:

Noctarius

Top Contributor
Stimmt natürlich. Aber trotzdem macht das, was der OP vorhatte, immer noch keinen Sinn.

Also, gegen breaks hast du also was, bei diesem case-fall-through meinst du dennoch nicht, dass das ein kleines schmutziges Geheimnis wäre, das vergessen werden sollte? ;)
seltsam seltsam... :D

Jein, in "gewissen" Fällen kann das Sinnvoll sein!

Code:
Object foo = new ObjectInstance1();

switch (bar) {
    case 1:
        foo.methode1();
        break;

    case 2:
        foo.specialValueForMethode2(12345);

    case 3:
        foo.methode2();
        break;

    case 4:
    case 5:
    case 6:
        foo.methode3();
}

Nämlich wenn ich in einem GAAAAAANZ bestimmten Fall eine Vorinitialisierung vornehmen möchte aber den Code dahinter auch ausführen will oder ich auf mehrere Werte die selben Aktionen folgen lassen möchte.

Gerade im letzteren Fall finde ich die switch/case Lösung besser als folgender Code:
Code:
if (bar == 4 || bar == 5 || bar == 6) { ... }
 

Wildcard

Top Contributor
Also, gegen breaks hast du also was, bei diesem case-fall-through meinst du dennoch nicht, dass das ein kleines schmutziges Geheimnis wäre, das vergessen werden sollte? ;)
seltsam seltsam... :D
Seltsam ist eher diese Kuriosität:
Hier waren schon mindestens 2 C#ler unterwegs die versucht haben es mir als Vorteil von C# zu verkaufen das C# ein break im case erzwingt.

Damit das es kein fall through in C# gibt, könnte ich persönlich noch leben, aber keiner der beiden Kandidaten konnte einen validen Grund nennen warum man das break nicht einfach weglassen kann, wenn es sowieso implizit vorhanden ist.
 

hdi

Top Contributor
Es gibt ja Leute die behaupten dass jedes switch-case durch Polymorphie ersetzt werden kann

Das stimmt auch, die Frage ist ob es immer Sinn macht.
Aber in 90%* der Fälle macht es Sinn.
Gilt übrigens auch für die meisten if-else Statements, die keine primitiven Abfragen
machen -> equals auf irgendwelche Dinge

*Ich hab mir erlaubt nach der komplexen Rechnung von 89,950234 auf 90 aufzurunden.
 

Ebenius

Top Contributor
aber keiner der beiden Kandidaten konnte einen validen Grund nennen warum man das break nicht einfach weglassen kann, wenn es sowieso implizit vorhanden ist.
Einen hab ich. Das '#'-Zeichen sind zwei sich überlappende, schräg versetzte '+'-Zeichen. In C++ braucht man das "break" auch. :)

:!:

Ebenius
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
K Mehrere Werte in einem Switch Case parallel überprüfen Java Basics - Anfänger-Themen 23
D Switch Case Methode aufrufen Java Basics - Anfänger-Themen 3
nelsonmandela Problem bei Ausgabe einer Switch - Case Funktion Java Basics - Anfänger-Themen 5
L Switch-Case Multiplikation wird nicht ausgegeben Java Basics - Anfänger-Themen 1
P9cman Vokal Zähler mit switch case und for-Schleife Java Basics - Anfänger-Themen 4
C Potenzberechnung über switch case. Taschenrechner mit Eingabe über einen grafischen Dialog Java Basics - Anfänger-Themen 22
1 Switch Case Java Basics - Anfänger-Themen 3
T Alternative für switch case Java Basics - Anfänger-Themen 1
W Taschenrechner mit Switch case Java Basics - Anfänger-Themen 4
B Notensystem Switch-Case Java Basics - Anfänger-Themen 31
S Switch-Case zur Berechnung der Einkommensteuer Java Basics - Anfänger-Themen 15
F Switch case wird als char nicht erkannt.... Java Basics - Anfänger-Themen 6
H Frage zur if-Bedingung bzw switch case Java Basics - Anfänger-Themen 6
S switch case fängt beim letzten case an Java Basics - Anfänger-Themen 6
F Switch Case Problem mit Regex lösen? Java Basics - Anfänger-Themen 6
W Wieso funktioniert mein Switch Case nicht ?! Java Basics - Anfänger-Themen 9
F Switch Case Modulo berechnen Java Basics - Anfänger-Themen 12
S Switch-Case für eine Array-Zuordnung Java Basics - Anfänger-Themen 5
S switch und case Java Basics - Anfänger-Themen 1
D Klassen Problem bei switch-case? Java Basics - Anfänger-Themen 2
B Wiederholen einer if/switch-case Schleife Java Basics - Anfänger-Themen 9
X Nach switch case weiter mit Auswahl Java Basics - Anfänger-Themen 7
T switch case und continue Java Basics - Anfänger-Themen 5
D switch case Code Java Basics - Anfänger-Themen 3
F Erste Schritte Switch case vs. Verschachtelte If Anweisung Java Basics - Anfänger-Themen 11
K Variablen RETURN in Case-Switch / This method must return a result of type Item Java Basics - Anfänger-Themen 4
R Switch: Nach durchlaufen des Case wieder zum Menü Java Basics - Anfänger-Themen 3
A Switch Case Java Basics - Anfänger-Themen 5
T Erste Schritte switch case Anweisung und if else Verzweigungen? Java Basics - Anfänger-Themen 6
A ArrayList-iteration mit Prüfung auf instanceof durch switch case? Java Basics - Anfänger-Themen 13
P Switch Case - Fließkommazahl Java Basics - Anfänger-Themen 2
lulas[]args Switch Schleife - orphaned case Java Basics - Anfänger-Themen 27
T kleines problem mit switch case Java Basics - Anfänger-Themen 11
R Switch/Case frage: Java Basics - Anfänger-Themen 12
K Input/Output switch case - Parameterübergabe args[0] Java Basics - Anfänger-Themen 34
P Compilerfehler bei switch-case Java Basics - Anfänger-Themen 18
D Switch und Case Java Basics - Anfänger-Themen 3
F Ps to kW Konvertierer switch-case Problem Java Basics - Anfänger-Themen 4
Q switch case hier möglich Java Basics - Anfänger-Themen 10
A Switch-Case Problem Java Basics - Anfänger-Themen 17
A Do While mit Switch Case Java Basics - Anfänger-Themen 2
berti99 Switch-Case || Problem... Java Basics - Anfänger-Themen 6
R Switch-Case Selektion Java Basics - Anfänger-Themen 13
O Switch-Case - Case 4 erhöhen Java Basics - Anfänger-Themen 9
M Frage zu Mehrfachauswahl mit switch ... case Java Basics - Anfänger-Themen 3
R Umlaute mit Switch-Case tauschen Java Basics - Anfänger-Themen 26
G Switch-Case harmoniert nicht mit Random-Zahl Java Basics - Anfänger-Themen 3
I If abfrage in switch case einbauen Java Basics - Anfänger-Themen 5
R Erlaubte Selektoren bei Switch-Case Java Basics - Anfänger-Themen 2
Silas89 String in switch - case Java Basics - Anfänger-Themen 19
G Switch Case Java Basics - Anfänger-Themen 8
G zu blöd für switch case? Java Basics - Anfänger-Themen 6
G switch-case mit Strings Java Basics - Anfänger-Themen 7
T Switch Case Java Basics - Anfänger-Themen 6
A Aus switch case an den Anfang? Java Basics - Anfänger-Themen 7
P switch-case Konstrukt auch mit case i < 6: s = 6 ? Java Basics - Anfänger-Themen 10
G switch-case mit Fehler auf return-Wert-Typ Java Basics - Anfänger-Themen 2
S Zählen mit switch case Java Basics - Anfänger-Themen 8
J Aufgabe mit Arrays, Schleifen & Switch/Case Java Basics - Anfänger-Themen 7
M switch-case und array Java Basics - Anfänger-Themen 3
C switch-case mit bedingungen? Java Basics - Anfänger-Themen 5
C Switch / Case Problem, break funktioniert nicht! Java Basics - Anfänger-Themen 3
J Switch Anweisung: Case "Wert1" bis "Wert2&quo Java Basics - Anfänger-Themen 2
D switch case must be constant expression Java Basics - Anfänger-Themen 7
A Switch Case Java Basics - Anfänger-Themen 4
G Mit Switch/Case Zahlen zu Array hinzufügen Java Basics - Anfänger-Themen 14
M HILFE bei switch & case Java Basics - Anfänger-Themen 15
A switch case mit einem String Java Basics - Anfänger-Themen 4
M switch case Java Basics - Anfänger-Themen 5
_so_far_away_ Inventarisierungssystem brauche switch Cases und weiß nicht, wie ich e implementieren muss Java Basics - Anfänger-Themen 5
M error: '.class' expected switch(char) Java Basics - Anfänger-Themen 32
A switch statement Java Basics - Anfänger-Themen 4
volcanos enum und switch (neu): falschen Wert mit IllegalArgumentException oder mit EnumConstantNotPresentException abfangen ? Java Basics - Anfänger-Themen 51
X Enum Abfrage ohne if, for, while oder switch Java Basics - Anfänger-Themen 21
Lion.King switch-Befehl Java Basics - Anfänger-Themen 6
U Warum kann ich die Methode in der ENUM Klasse nicht aufrufen? Und warum geht die Switch nicht? Java Basics - Anfänger-Themen 8
U Warum gibt das eine Nullpointerexception? (Switch) Java Basics - Anfänger-Themen 6
C if-Konstrukt durch switch-Konstrukt ersetzen Java Basics - Anfänger-Themen 14
C Taschenrechner (switch) in Taschenrechner mit Methoden umwandeln Java Basics - Anfänger-Themen 115
V Switch Methode macht Code kaputt Java Basics - Anfänger-Themen 18
J Parameterübergabe in switch? Java Basics - Anfänger-Themen 2
M Switch Java Basics - Anfänger-Themen 2
F Erste Schritte Frage zu simplem Taschenrechner(switch) Java Basics - Anfänger-Themen 16
NoMercy BitFlags Programm (switch on/off , swap und isSet) Java Basics - Anfänger-Themen 7
L Taschenrechner mit switch und while funktioniert noch nicht richtig Java Basics - Anfänger-Themen 22
B Problem bei switch statement Java Basics - Anfänger-Themen 4
E Input/Output Switch ausgabe anpassen bzw. anders darstellen Java Basics - Anfänger-Themen 13
A Warum funktioniert switch aber nicht if/else? Java Basics - Anfänger-Themen 23
K Erste Schritte switch - Warum sind long/float/double/... nicht erlaubt? Java Basics - Anfänger-Themen 5
Ponychan95 Erste Schritte Switch fällt immer bis zum default durch Java Basics - Anfänger-Themen 4
P Bei Switch-Anweisung wird default-Anweisung angezeigt Java Basics - Anfänger-Themen 4
D kleiner Taschenrechner mit switch fehlerhaft Java Basics - Anfänger-Themen 1
O This in switch anweisung Java Basics - Anfänger-Themen 5
V Fehlerhafte BufferedReader/switch Benutzung? Java Basics - Anfänger-Themen 2
R Methoden Switch wählt das Falsche Java Basics - Anfänger-Themen 17
B Erste Schritte Addition von double in switch-Anweisung Java Basics - Anfänger-Themen 2
M Endlosschleife bricht durch switch ab Java Basics - Anfänger-Themen 17
D Array in switch Java Basics - Anfänger-Themen 3
Devil0s if vs. switch Java Basics - Anfänger-Themen 27
F Reset in der switch Anweisung Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben