1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team-Mitglieder
    4. Trophäen
    5. Mitgliedersuche
  4. Tutorial Bereich
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Lexikon
  • Erweiterte Suche
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

switch

  • n4p
  • 11. Oktober 2006 um 17:44
  • Unerledigt
  • n4p
    2
    n4p
    Mitglied
    Punkte
    30
    Beiträge
    4
    • 11. Oktober 2006 um 17:44
    • #1

    also wie schon einmal berichtet fange ich gerade erst mit java an.
    ich hab mich jetzt einmal mit der übungsaufgabe des prologs probiert, und hab schon die erste frage:
    ich habe einer String variable namens auswahl einen wert durch eingabe zugeordnet also: auswahl = eingabe.next();
    jetzt will ich mittels switch die eingabe mit 3 namen vergleichen
    also:
    switch (auswahl){
    case "NAME1":
    ANWEISUNG;
    case "NAME2":
    ANWEISUNG;
    case "NAME3":
    ANWEISUNG;
    default:
    ANWEISUNG;
    }

    dann hab ich aber den fehler:
    PROGRAMMNAME:ZEILE: incompatible types
    found : java.lang.string
    required : int
    switch(auswahl)
    ^

    Kann man für switch überhaupt string variablen benutzen?
    wenn ja, was ist dann der fehler?
    wenn nein, wie mach ich das dann bzw wie muss ich das schreiben damit switch auch für strings gehen?

    mfg n4p

  • gelbasack
    25
    gelbasack
    Mitglied
    Reaktionen
    90
    Punkte
    6.525
    Beiträge
    1.241
    • 11. Oktober 2006 um 17:47
    • #2

    Die Funktion switch() erwartet ein int, wie es in der Fehlermeldung steht. Also wie du schon gesagt hast, mit String geht es nicht.

  • Shardik
    12
    Shardik
    Mitglied
    Reaktionen
    16
    Punkte
    1.351
    Beiträge
    248
    • 11. Oktober 2006 um 18:07
    • #3

    funzt das nicht einfach mit

    Code
    auswahl = eingabe.next();
    if auswahl ='name1' anweisung1;
    if auswahl ='name2' anweisung2;

    :(){ :|:&};:

  • gelbasack
    25
    gelbasack
    Mitglied
    Reaktionen
    90
    Punkte
    6.525
    Beiträge
    1.241
    • 11. Oktober 2006 um 18:24
    • #4

    Für Vergleiche aber == nehmen, für Zuweisungen =.
    Für Strings nimmt man außerdem "", '' ist für chars.
    Also:
    if (auswahl == "name1") anweisung1;
    Was aber auch nur von theoretischem Interesse ist, da man hier die Speicheradressen vergleicht. Für Strings verwendet man unter Java die Methode equals(), also ganz richtig:
    if (auswahl.equals("name1")) anweisung1;

  • Homer
    10
    Homer
    Mitglied
    Reaktionen
    9
    Punkte
    1.079
    Beiträge
    210
    • 11. Oktober 2006 um 18:29
    • #5

    nur am rande....es ist sicher kein fehler, jedoch ist es schöner die string-fkt equals zu benutzen...
    also:

    if (auswahl.equals("name1")) ...

    "ich bin so kluk. K-L-U-K"
    (Homer Jay Simpson)

  • Maximilian Rupp 27. Dezember 2024 um 12:05

    Hat das Thema aus dem Forum Programmieren nach Entwicklung verschoben.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!

Benutzerkonto erstellen Anmelden

Benutzer online in diesem Thema

  • 1 Besucher

Rechtliches

Impressum

Datenschutzerklärung