Chrischaaan: switch

tach

wenn ich eine switch auswahl machen will, was muß ich in die klammer hinter switch schreiben?

also der code(maln außschnitt sozusagen)

public void ....()

switch(was muß hier rein??)
case "1"
.
.
.
.
.
break;
}
}

hoffe ihr könnt mir helfen.

bye,christian.

  1. tach

    wenn ich eine switch auswahl machen will, was muß ich in die klammer hinter switch schreiben?

    also der code(maln außschnitt sozusagen)

    public void ....()

    switch(was muß hier rein??)
    case "1"
    .

    http://java.sun.com/docs/books/tutorial/java/nutsandbolts/switch.html

  2. Hallo Chrischaaan,

    wenn ich eine switch auswahl machen will, was muß ich in die klammer hinter switch schreiben?

    ich weiß nicht, in welcher Programmiersprache (laut Themenbereich Java) du das brauchst, aber ich denke das dürfte in (mehr oder weniger) jeder Sprache gleich sein.

    switch(was muß hier rein??)

    hier muss die Variable rein, die abgefragt werden soll.
    nach switch fehlt übrigends noch eine geschweifte Klammer (soweit nicht ein Tipfehler).

    Grüße aus Nürnberg
    Tobias

    1. hallo

      so,nun hab ich das hier reingeschrieben.nun kommt aber die fehlermeldung das "farben" nich definiert is und so.

      wie definier ich das??
      nach int geht das nich kommt dauernd.
      (ürigens in visual j++)

      import com.ms.wfc.app.*;
      import com.ms.wfc.core.*;
      import com.ms.wfc.ui.*;
      import com.ms.wfc.html.*;

      /**
       * Diese Klasse kann eine variable Anzahl von Parameter auf der Befehlszeile
       * entgegennehmen. Die Programmausführung startet mit der Methode main(). Der
       * Klassenkonstruktor wird nicht aufgerufen, bevor nicht ein Objekt vom Typ 'Form1'
       * in der Methode main() erstellt wird.
       */
      public class Form1 extends Form
      {
       public Form1()
       {
        // Erforderlich für die Unterstützung des Visual J++-Formulardesigners
        initForm();

      // ZU ERLEDIGEN: Fügen Sie beliebigen Konstruktorcode hinter den Aufruf von initForm hinzu
       }

      /**
        * Form1 überlädt dispose, damit es die Komponentenliste
        * bereinigen kann.
        */
       public void dispose()
       {
        super.dispose();
        components.dispose();
       }

      private void cmd_info_click(Object source, Event e)
       {
        Info myAbout = new Info();
        myAbout.showDialog ();
       }

      public void cmd_aendern_click(Object source, Event e)
       {

      switch(farben)
        {
       case "rot":
         panel1.setBackColor((new Color(29, 76, 220)));
        break;
       case "blau":
         panel1.setBackColor((new Color(192, 220, 35)));
        break;
       case "grün":
         panel1.setBackColor((new Color(70, 95, 220)));
        break;
        }
       }
       /**
        * HINWEIS: Der folgende Code ist für den Visual J++-
        * Formulardesigner erforderlich.  Er kann mit dem Formulareditor verändert werden.  Ändern Sie
        * ihn nicht mit dem Codeeditor.
        */
       Container components = new Container();
       Button cmd_info = new Button();
       Button cmd_aendern = new Button();
       Panel panel1 = new Panel();

      private void initForm()
       {
        // HINWEIS:  Dieses Formular speichert Ressourceninformationen in
        // einer externen Datei.  Ändern Sie nicht den Zeichenfolgenparameter für
        // einen der Funktionsaufrufe von resources.getObject().  Ändern Sie z.B.
        // nicht "foo1_location" in der folgenden Codezeile,
        // auch nicht, wenn sich der Name des Foo-Objekts ändert:
        //  foo1.setLocation((Point)resources.getObject("foo1_location"));

      IResourceManager resources = new ResourceManager(this, "Form1");
        this.setBackColor(Color.BLUE);
        this.setCursor(Cursor.ARROW);
        this.setText("Farbwähler");
        this.setAutoScaleBaseSize(new Point(5, 13));
        this.setClientSize(new Point(422, 206));
        this.setIcon((Icon)resources.getObject("this_icon"));
        this.setMaximizeBox(false);
        this.setMinimizeBox(false);

      cmd_info.setCursor(Cursor.ARROW);
        cmd_info.setLocation(new Point(376, 176));
        cmd_info.setSize(new Point(40, 16));
        cmd_info.setTabIndex(0);
        cmd_info.setText("Info");
        cmd_info.addOnClick(new EventHandler(this.cmd_info_click));

      cmd_aendern.setCursor(Cursor.ARROW);
        cmd_aendern.setLocation(new Point(192, 16));
        cmd_aendern.setSize(new Point(75, 23));
        cmd_aendern.setTabIndex(1);
        cmd_aendern.setText("ändern");
        cmd_aendern.addOnClick(new EventHandler(this.cmd_aendern_click));

      panel1.setBackColor(Color.RED);
        panel1.setCursor(Cursor.ARROW);
        panel1.setLocation(new Point(160, 56));
        panel1.setSize(new Point(128, 112));
        panel1.setTabIndex(2);
        panel1.setText("panel1");
        panel1.setBorderStyle(BorderStyle.FIXED_SINGLE);

      this.setNewControls(new Control[] {
             panel1,
             cmd_aendern,
             cmd_info});
       }

      /**
        * Der Haupteinsprungpunkt für die Anwendung.
        *
        * Ein @param args-Array aus Parametern wird an die Anwendung
        * über die Befehlszeile übergeben.
        */
       public static void main(String args[])
       {
        Application.run(new Form1());
       }
      }

      1. Hallo,

        bitte eigne dir doch zuerst die Java-Grundlagen an. Hierbei ist z.B.
        http://www.javabuch.de ganz hilfreich. Das gibt es dort sogar zum
        kostenlosen Download. Es gibt noch weitere gute Java-Bücher, teilweise
        auch kostenlos zum Download.
        Ich glaube nicht, daß es einen großen Sinn hat, dir mit dem jetzigen
        Wissensstand _sinnvoll_ behilflich zu sein.
        Ach ja: Visual J++ ist schlecht. Ganz schlecht! Nimm das Original-Java
        von Sun (http://java.sun.com/) und lade dir irgendwo einen
        anständigen Editor runter.

        Tobias

        1. hi

          da bin ich grade dabei.
          und weil cih was lernen will will ichs auch probieren(learning by doing)

          Ich glaube nicht, daß es einen großen Sinn hat, dir mit dem jetzigen
          Wissensstand _sinnvoll_ behilflich zu sein.

          kannst du mir bitte trotzdem sagen was ich eintragen muß??

          bye,christian.

          1. Hallo,

            und weil cih was lernen will will ichs auch probieren(learning by doing)

            Ich glaube nicht, daß du wirklich irgend etwas lernst, wenn du dir
            eine GUI mit Visual J++ zusammenklickst, aber eigentlich gar nicht
            weißt, was du da tust und was passiert. Es ist zwar schön, weil du
            schnell Ergebnisse hast... weil du eben schnell was siehst. Vielleicht
            schaffst du es auch, die Hintergrundfarbe des Panel zu ändern. Aber
            wirklich bringen tut dir das nichts.
            Ich kann das deshalb so einfach sagen, weil ich vor vielen Jahren mal
            versucht habe Delphi so zu lernen. Ich habe sogar ein paar nette
            Programme zusammengeklickt. Und die waren noch nicht mal so klein, und
            haben überraschenderweise auch funktioniert. Ich habe trotzdem nie
            auch nur einen blassen Schimmer davon bekommen, was "objektorientiert"
            überhaupt bedeuten mag. Ganz zu schweigen davon, was überhaupt möglich
            ist. Dir mangelt es nun sogar am Verständis von switch-case, was ich
            damals konnte (-> langjährige Pascal-Erfahrung). Du scheinst noch
            nicht einmal zu wissen, was eine Variable ist, oder was dir die
            Fehlermeldung sagen will, daß diese Variable nicht definiert sei.
            Deshalb -- und nur deshalb -- sage ich dir: Kauf dir ein Java-Buch
            und lies das durch! Evtl. wäre sogar ein Buch, das sich allgemein
            mit dem Programmieren befaßt, ganz hilfreich.
            (Du mußt es ja noch nichtmal kaufen. Lad es dir einfach runter.)

            Und bitte nimm was anderes als Visual J++. Die Gründe für diese
            Aussage findest du an vielen Stellen im Netz und bestimmt auch hier
            im Archiv des Forums.

            kannst du mir bitte trotzdem sagen was ich eintragen muß??

            Was willst du eigentlich machen?

            Tobias

            1. hi

              ich weiß schon was eine variable is.
              ich hab in der schule auch vb und c++ is nächstes jahr dran.
              aber ich hab mir halt vorgenommen das was wir in der schule in vb machen daheim in java nachzuprogrammieren.

              und da vb nur halb so schwer is wie java geht das in vb auch viel einfacher und da bring ich das auch.

              und weil java eben schwerer is bekomm ich das hier nich auf die reihe.

              es is einfach nur das immer wieder die meldung kommt das die klasse nicht definiert sei auch wenn ich standartklassen nehme die ich für die variablen einsetze.
              also mit der ich die variable halt definiere.

              bye,christian.

      2. Hallo Chrischaaan,

        so,nun hab ich das hier reingeschrieben.nun kommt aber die fehlermeldung das "farben" nich definiert is und so.

        was jetzt lautet sie so oder nicht :)

        (ürigens in visual j++)

        von c++ hab ich ja schon gehört, aber von j++? es scheint es aber wirklich zu geben... google findet wenn man nach 'j++' sucht über 11000 Ergebnise, also scheint es j++ wirklich zu geben - man lernt immer wieder dazu :)

        switch(farben)

        ich würde jetzt als Unwissender vermuten, das 'farben' (eine Variable?) vorher ein Wert zugewiesen werden muss - aber wie gesagt, von j++ habe ich keine Ahnung. Der Code scheint aber gut kommentiert zu sein (ich vermute der Code ist aus irgendeiner Sammlung o.ä.?)

        Grüße aus Nürnberg
        Tobias

        1. Hallo tobias

          die kommentare fügt das visual j++ ein.
          nur die sache mit dem switch is von mir.

          wenn ich "farben" eine variable zuordnen will kommt immer die meldung das halt die variable undefiniert ist.

          muß ich da noch ne klasse schreiben wo der dann erkennt das da jemand was eingegeben hat oder so.aber eigentlich is das ja schon drin sender e..., was halt alles hinter public void steht)

          bye,christian.

      3. Hallo Christian,

        (... ganz viel Microsoft-Quellcode ...)

        In all dem Quellcode, den Du da gepostet hast, sehe ich nirgendwo eine Deklaration für die Variable "farben". Ist sie ein String, ein Char, ein Integer oder was?

        Zwei Tip:

        a) Bitte, besorg Dir wirklich ein gutes Buch (#1) zu Java und lerne es. Das gute an den meisten Büchern ist nämlich, daß dort nicht nur die Syntax der Programmiersprache gelehrt wird, sondern auch drunterliegende Konzepte, wie in Deinem Fall z.B. Variablentypen bzw. -deklarationen, und ganz wichtig das objektorientierte Paradigma.

        b) Und fang nicht gleich mit der Microsoftverwurschtelung von Java, ihr J++ an. Lern erstmal das "richtige" Java von Sun (#2), besorg Dir den Compiler und einen kleinen Editor (#3). Mehr braucht man am Anfang nicht.

        (#1) Da kann ich keine guten Empfehlungen geben. Das einzige Javabuch, das ich
             hier habe, ist "Einführung in die objektorientierte Programmierung mit
             Java" von Doberkat/Dißmann und daß auch nur, weil ersterer hier an der Uni
             lehrt.
        (#2) http://java.sun.com
        (#3) Hier kann ich JOE empfehlen:
             http://www.javaeditor.de

        • Tim
        --
        Diese Signatur ist abgelaufen.
        Bitte besorgen Sie sich eine neue.
  3. tach

    Hallo

    switch(was muß hier rein??)

    die Variable, die du vorher initialisiert hast (wie in C auch)
    z.B.

    int variable = 5
    switch(variable)
    ...

    Gruß,
    Benne

    1. hallo benne

      int variable = 5
      switch(variable)

      und was macht die 5??

      bye,christian.

      1. und was macht die 5??

        das soll ein Beispielwert von mir sein.
        hab übrigens den Semikolon vergessen...

        Gruß,
        Benne

    2. hi

      ich hab das grade mal probiert und dann kommt halt die fehlermeldung das die umwandlung von string nach int nicht möglich sei.
      mhhhhhh...

      bye,christian.

      1. Hallo

        ich hab das grade mal probiert und dann kommt halt die fehlermeldung das die umwandlung von string nach int nicht möglich sei.

        hm, kann sein, dass switch nen String erfordert !?
        dann probier halt mal folgendes
        string farbe = "rot";
        ...
        Gruß,
        Benne

        1. Hallo,

          hm, kann sein, dass switch nen String erfordert !?
          dann probier halt mal folgendes
          string farbe = "rot";

          Wenn du es nicht weißt, dann informiere dich gefälligst vorher, bevor
          du hier Müll postest. Danke!

          http://java.sun.com/docs/books/jls/second_edition/html/statements.doc.html#35518

          "The type of the Expression must be char, byte, short, or int, or a compile-time error occurs."

          Tobias

          1. hi

            "The type of the Expression must be char, byte, short, or int, or a compile-time error occurs."

            ich hab da auch schon probiert die werte halt als byte zum beispiel zu definieren aber dann will der eine klasse die ich nich ahb obwohl byte ja standart ist.

            bye

        2. hi

          da ist dann string wieder undefiniert.

          bye

  4. switch(was muß hier rein??)

    hallo,

    wie auch die anderen schon gesagt haben, dort muss eine variable rein, die vorher definiert wurde. natürlich muss dieser variable auch ein wert zugewiesen werden, z.b. durch eine kommandozeilen-eingabe, oder durch eine andere funktion, die diesen wert übergibt.
    der typ muss in deinem fall natürlcih string sein, denn die variable soll ja so werte wie 'rot' oder 'blau' haben.

    hoffe das hilft dir etwas.

    gruss
    moejoe

    1. Hi Mojoe,

      wie auch die anderen schon gesagt haben, dort muss eine variable rein,

      nicht unbedingt eine Variable, aber ein Ausdruck. Es kann z.B. auch eine Funktion sein, die einen Wert zurückliefert. Die case-Statements müssen dann natürlich die gleichen Typen abprüfen.

      An Crischaan: ich empfehle dir, dich zuerst mit den verschiedenen Typen und Variablen zu beschäftigen.

      Gruß,
      Martin

    2. Hallo,

      der typ muss in deinem fall natürlcih string sein, denn die variable soll ja so werte wie 'rot' oder 'blau' haben.

      Für dich gilt dasselbe, das ich schon diesem Benne gesagt habe:
      [pref:t=31599&m=170964]

      Tobias
      [nahe einem Herzinfarkt]