• Es freut uns dass du in unser Minecraft Forum gefunden hast. Hier kannst du mit über 130.000 Minecraft Fans über Minecraft diskutieren, Fragen stellen und anderen helfen. In diesem Minecraft Forum kannst du auch nach Teammitgliedern, Administratoren, Moderatoren , Supporter oder Sponsoren suchen. Gerne kannst du im Offtopic Bereich unseres Minecraft Forums auch über nicht Minecraft spezifische Themen reden. Wir hoffen dir gefällt es in unserem Minecraft Forum!

Die Switch-Anweisung funktioniert nicht

AnonymusChaotic

Workaholic
Registriert
22 November 2013
Beiträge
760
Diamanten
0
Ich bin gerade dabei, mir die Java-Basics beizubringen (mit der Insel :)), und versuche mich erstmal an kleinen Konsolenprogrammen, die mathematische Berechnungen ausführen können.

Warum wirft mir das Programm immer ERROR!!!, also das default aus?
Code:
package start;

public class Test {

    public static void main(String[] args) {
        System.out.print("Gib die Nummer der Formel ein: ");
        int formelnummer = new java.util.Scanner(System.in).nextInt();
       
       
        switch (formelnummer)
       {
         case '1':
          {
          System.out.println("Du hast [1] Zinsen- und Ratenberechnung gewählt!");
          formeln.Zinsen.zinsen_begin();
          }
          break;
         case '2':
           {
           System.out.println("Du hast [2] xxxxxxxxxxxxxxx gewählt!");
           formeln.Zinsen.zinsen_begin();
           }
           break;
         case '3':
           {
           System.out.println("Du hast [3] xxxxxxxxxxxxxxx gewählt!");
           formeln.Zinsen.zinsen_begin();
           }
           break;
         case '4':
           {
          System.out.println("Du hast [4] xxxxxxxxxxxxxxx gewählt!");
           formeln.Zinsen.zinsen_begin();
           }
           break;
         default:
          System.out.println("ERROR!!!"); 
          break;
       }
    }

}

Freue mich über jede Hilfe!
 

Thalion

Minecrafter
Registriert
22 Juli 2014
Beiträge
26
Diamanten
5
Minecraft
Spartaner_v1
Da du hier ein Konsolenmenü hast, ist das relativ egal, ob du das als String oder Zahl einliest. Da ich nicht weis, wie weit du in die Materie vorgedrungen bist, wäre es wahrscheinlich einfacher beim Zahlensystem zu bleiben.
Generell sollte man das schnell intus haben, wie man String, Character und Zahlen bzw. Bytes schreibt.

Mfg
 

MiCrJonas

Threadripper
Registriert
29 Oktober 2012
Beiträge
1.064
Diamanten
0
Char ist in deinem Beispiel wohl die schlechteste Lösung, da es genau ein Zeichen ist. '11' ist zum Beispiel nicht gültig. Einen String zu benutzen hat den Vorteil, dass du in der Konsole ein Wort statt eine Zahl eingeben musst, was die Benutzung vereinfacht. Es besteht auch die Möglichkeit, dass du eine Zahl oder ein Wort eingeben kannst, dabei muss aber die Zahl auch als String gehandhabt werden.
 
G

GermanUbuntu

Guest
Char ist in deinem Beispiel wohl die schlechteste Lösung, da es genau ein Zeichen ist. '11' ist zum Beispiel nicht gültig. Einen String zu benutzen hat den Vorteil, dass du in der Konsole ein Wort statt eine Zahl eingeben musst, was die Benutzung vereinfacht. Es besteht auch die Möglichkeit, dass du eine Zahl oder ein Wort eingeben kannst, dabei muss aber die Zahl auch als String gehandhabt werden.
Ich würde hier doch bei einem char bleiben,
Im Performance bereich ist es besser
 

Chrisliebär❤️

nur echt mit ❤️
Moderator
Registriert
19 Mai 2014
Beiträge
1.675
Diamanten
830
Ich würde hier doch bei einem char bleiben,
Im Performance bereich ist es besser
Im Performancebereich ist es scheiß egal, weil die Spannungsschwankungen in deinem Stromnetz mehr auswirkungen auf die Geschwindigkeit der CPU haben, als dieser Mist.

Mit Assembler wärs übrigens noch schneller.
 

AnonymusChaotic

Workaholic
Registriert
22 November 2013
Beiträge
760
Diamanten
0
Habe schon wieder ein Problem...
Warum muss ich ein } setzen, wo doch definitiv ein ; gehört?
Code:
Multiple markers at this line
    - Syntax error on token ";", { expected after
    this token
Code:
Description    Resource    Path    Location    Type
Syntax error on token ";", { expected after this token    faktorielle.java    /Mathinator/src/formeln    line 8    Java Problem
Syntax error on token "double", invalid AnnotationName    faktorielle.java    /Mathinator/src/formeln    line 5    Java Problem
Code:
package formeln;

public class faktorielle {

    public static faktorielle2 (double variable){
 
 
        double n = 1;
 
            while (n > 1)
            {
                variable = variable * n;
                n = n - 1;
            }
        return variable;
    }

}
 

Major_Sauce

Minecrafter
Registriert
18 September 2013
Beiträge
26
Diamanten
0
Minecraft
Major_Sauce
Mal ne Frage, benutzt du eine IDE ?
Also sowas wie Eclipse oder Netbeans zum Bleistift.

Wenn ich mich nicht irre fehlt da noch die Definition der Methode, ist es eine void, boolean ?
Nach dem was du da zurückgibst wird es wohl ein double sein -> public static double faktorielle2() {... bla

Ps: Die Loop würde ich durch eine for-Schleife ersetzen, ist übersichtlicher und braucht nicht so viele Zeilen.
Wenn du sonst noch Probleme hast kannst du mich auch per PN anschreiben, dann kann man das auch mal in Skype oder Ts zusammen anschauen, sollte wohl besser gehen.

mfg Major_Sauce
 

AnonymusChaotic

Workaholic
Registriert
22 November 2013
Beiträge
760
Diamanten
0
Ich nutze Eclipse

Es ist eine double, nur das habe ich rausgehauen, weil es eine Fehlermeldung gegeben hat.
Habe auch schon daran gedacht, aber ich will die For-schleife nicht überladen, mit while geht das schön übersichtlich.

Ich würde mich freuen, wenn Du mich bei meinen Java-problemchen unterstützen würdest, im Forum ist es aber möglicherweise schneller.
 

Major_Sauce

Minecrafter
Registriert
18 September 2013
Beiträge
26
Diamanten
0
Minecraft
Major_Sauce
Die for-Schleife überladen ?
Jedem das eigene, das ist nur das typische Anwendungsgebiet für for-Schleifen.

Zu deinem Problem:
Eine java-Methode wird immer mit einem Typ und einem Namen versehen, public und static sind optional, der Typ muss aber vorhanden sein.
Bei dir kann ich ihn nicht erkennen, es sei denn du hast eine Klasse die sich faktorielle2 nennt, dann fehlt aber noch die Bezeichnung.

Code:
public static double faktorielle2(double value) {

//Inhalt einfügen

}

Sollte funktionieren.
Ach ja, dein Code im inneren der loop macht überigens im Moment gar nichts.

mfg Major_Sauce
 
Oben