default / if?

chris30o0

Mitglied
Unten seht ihr das Ende eines Taschenrechners.
unter den ganzen cases steht ja noch ein default. Dieser meldet sich, wenn ich ein ungültiges Rechenzeichen eingegeben habe.
Danach geht's aber normal weiter zum Ergebnis.
Er sagt also
"Ergebnis konnte nicht ermittelt werden.
Bitte versuchen Sie es erneut.
Das Ergebnis ist 0,00"
Ich hatte jetzt die Idee, da irgendwie ein if einzubauen, weiß aber nicht recht wie, und ob das überhaupt funktioniert.
Java:
    double n1 = Double.parseDouble(num);
    switch (oper) {
    case '+': ergebnis = n1+n2;
    break;
    case '-': ergebnis = n1-n2;
    break;
    case '*': ergebnis = n1*n2;
    break;
    case '/': ergebnis = n1/n2;
    break;
    case '^': ergebnis = pow(n1,n2);
    break;
    case 's': ergebnis = sqrt(n1/180*Math.PI);
    break;
    case 'c': ergebnis = cos(n1/180*Math.PI);
    break;
    case 'i': ergebnis = sin(n1/180*Math.PI);
    break;
    case 't': ergebnis = tan(n1/180*Math.PI);
    break;
    case 'a': ergebnis = asin(n1/180*Math.PI);
    break;
    case 'o': ergebnis = acos(n1/180*Math.PI);
    break;
    case 'n': ergebnis = atan(n1/180*Math.PI);
    break;
    case 'l': ergebnis = log10(n1);
    break;
    default: System.out.println("Ergebnis konnte nicht ermittelt werden.");
    System.out.println("Bitte versuchen Sie es erneut.");
    }
    
    System.out.printf("Das Ergebnis ist %.2f \n" ,ergebnis); 
    
    System.out.println("-------------------------------------------"); 
    }
   catch(NumberFormatException e)
    {
    System.out.println("Bitte nur Zahlen und gültige Rechenzeichen verwenden. \n");
 

HimBromBeere

Top Contributor
Pack deinen Switch in eine Schleife, die solange läuft, wie keine gültige Ausabe gemacht wurde. Dafür kannst du z.b. eine boolean definieren, die nur im default-Fall auf false gesetzt wird. In der While-Bedingung prüfst du dann einfach, ob der Wert falsch ist.

EDIT: Mach den boolean doch lieber andersrum, oder eine fußgesteuerte Schleife draus, damit das Ganze wenigstens ein Mal ausgeführt wird.
 

chris30o0

Mitglied
Mit boolean habe ich noch gar nicht gearbeitet (ist hier mein erstes Projekt).
Werde mich mal darüber informieren, und schauen, ob ich das hinbekomme.
Werde das aber heute vermutlich nicht mehr schaffen, außer mir würde jemand eine kleine Codezeile geben, die mir das erleichtert :D
 

HimBromBeere

Top Contributor
Will mal nicht so sein :D

Java:
public class MyClass {
	private boolean bDone = true;
	
	public void menu() {
		char oper = '+';
		do {
			switch(oper) {
			    // handle the cases
			    default: bDone = false;
			}
		} while(!bDone);
	}
}
 

chris30o0

Mitglied
Java:
import java.io.*;
import static java.lang.Math.*;

public class main {
	  private boolean bDone = true;
  public static void main (String[] args)
  throws IOException {
  double ergebnis=0.0;
  String num2; 
  double n2 = 0;
  BufferedReader bin = new BufferedReader(
        new InputStreamReader(System.in));
  while (true) {  
    try {
    System.out.printf("Geben Sie die erste Zahl ein: ");
    String num = bin.readLine();
    System.out.printf("Geben Sie das Rechenzeichen ein: ");
    String op = bin.readLine();
    char oper = op.charAt(0);
    if (op.equalsIgnoreCase( "sqr" )) {
    	num2="";
    	oper='s';
    }
    else if (op.equalsIgnoreCase("cos")) {
    	num2 ="";
    	oper='c';
    }
    else if (op.equalsIgnoreCase("sin")) {
    	num2 ="";
    	oper='i';
    }
    else if (op.equalsIgnoreCase("tan")) {
    	num2 ="";
    	oper='t';
    }
    else if (op.equalsIgnoreCase("acos")) {
    	num2 ="";
    	oper='o';
    }
    else if (op.equalsIgnoreCase("asin")) {
    	num2 ="";
    	oper='i';
    }
    else if (op.equalsIgnoreCase("atan")) {
    	num2 ="";
    	oper='n';
    }
    else if (op.equalsIgnoreCase("log")) {
    	num2 ="";
    	oper='l';
    }
    else {
    	
    	System.out.printf("Geben Sie die zweite Zahl ein: ");
    	num2 = bin.readLine();
    	n2 = Double.parseDouble(num2);
    }
    if ((oper=='/') && (n2==0)) {
    	System.out.println("Durch 0 teilen nicht möglich!");    	
    	System.out.printf("Geben Sie die zweite Zahl erneut ein: ");
    	num2 = bin.readLine();
    	n2 = Double.parseDouble(num2);
    }

    double n1 = Double.parseDouble(num);
    do {
    switch (oper) {
    case '+': ergebnis = n1+n2;
    break;
    case '-': ergebnis = n1-n2;
    break;
    case '*': ergebnis = n1*n2;
    break;
    case '/': ergebnis = n1/n2;
    break;
    case '^': ergebnis = pow(n1,n2);
    break;
    case 's': ergebnis = sqrt(n1/180*Math.PI);
    break;
    case 'c': ergebnis = cos(n1/180*Math.PI);
    break;
    case 'i': ergebnis = sin(n1/180*Math.PI);
    break;
    case 't': ergebnis = tan(n1/180*Math.PI);
    break;
    case 'a': ergebnis = asin(n1/180*Math.PI);
    break;
    case 'o': ergebnis = acos(n1/180*Math.PI);
    break;
    case 'n': ergebnis = atan(n1/180*Math.PI);
    break;
    case 'l': ergebnis = log10(n1);
    break;
    default: bDone = false;
//    default: System.out.println("Ergebnis konnte nicht ermittelt werden.");
    System.out.println("Bitte versuchen Sie es erneut.");
    }
    
    System.out.printf("Das Ergebnis ist %.2f \n" ,ergebnis); 
    
    System.out.println("-------------------------------------------"); 
    } while(!bDone);
    }
   catch(NumberFormatException e)
    {
    System.out.println("Bitte nur Zahlen und gültige Rechenzeichen verwenden. \n");
    }
   }
  }
}
Hier mal der gesamt Code, so wie ich das verstanden habe.
So geht das aber nicht, da wird sich unten beschwert.
Habe das alte default mal als Kommentar dagelassen.
 
Zuletzt bearbeitet:

chris30o0

Mitglied
Ich verstehe nicht ganz, worauf die hinaus willst.
Außerdem ändert das ja auch das Problem nicht.
Oder funktioniert boolean nur mit switch? ;D

EDIT:
Hier mal die Fehldermeldung^^
Java:
Exception in thread "main" java.lang.Error: Unresolved compilation problems: 
	Cannot make a static reference to the non-static field bDone
	Cannot make a static reference to the non-static field bDone
 
Zuletzt bearbeitet:

Landei

Top Contributor
bDone ist eine Instanz-Variable, und du versucht von einer statischen Methode aus darauf zuzugreifen. [c]private static boolean bDone = true;[/c] sollte funktionieren. Dein Code sieht übrigens grausig aus (wie wäre es, die IDE deines Vertrauens einfach mal autoformatieren zu lassen), und eine Klasse "main" zu nennen grenzt an Blasphemie :)
 

chris30o0

Mitglied
1. nun klappt es, jedenfalls startet es^^
2. Formatiert
3. der Name kam nicht von, aber ist der nicht eigentlich komplett wurscht?^^
Hätte das ja auch calc nennen können.
4. nun gibts hier nochmal den formatierten Code mit folgender Info:
Der letzte Schritt wird dauernd wiederholt.
Ich habe da schon eine Schleife drin, das hat sich wohl ungünstig vermischt.
Java:
import java.io.*;
import static java.lang.Math.*;

public class main {
	private static boolean bDone = true;

	public static void main(String[] args) throws IOException {
		double ergebnis = 0.0;
		String num2;
		double n2 = 0;
		BufferedReader bin = new BufferedReader(
				new InputStreamReader(System.in));
		while (true) {
			try {
				System.out.printf("Geben Sie die erste Zahl ein: ");
				String num = bin.readLine();
				System.out.printf("Geben Sie das Rechenzeichen ein: ");
				String op = bin.readLine();
				char oper = op.charAt(0);
				if (op.equalsIgnoreCase("sqr")) {
					num2 = "";
					oper = 's';
				} else if (op.equalsIgnoreCase("cos")) {
					num2 = "";
					oper = 'c';
				} else if (op.equalsIgnoreCase("sin")) {
					num2 = "";
					oper = 'i';
				} else if (op.equalsIgnoreCase("tan")) {
					num2 = "";
					oper = 't';
				} else if (op.equalsIgnoreCase("acos")) {
					num2 = "";
					oper = 'o';
				} else if (op.equalsIgnoreCase("asin")) {
					num2 = "";
					oper = 'i';
				} else if (op.equalsIgnoreCase("atan")) {
					num2 = "";
					oper = 'n';
				} else if (op.equalsIgnoreCase("log")) {
					num2 = "";
					oper = 'l';
				} else {

					System.out.printf("Geben Sie die zweite Zahl ein: ");
					num2 = bin.readLine();
					n2 = Double.parseDouble(num2);
				}
				if ((oper == '/') && (n2 == 0)) {
					System.out.println("Durch 0 teilen nicht möglich!");
					System.out.printf("Geben Sie die zweite Zahl erneut ein: ");
					num2 = bin.readLine();
					n2 = Double.parseDouble(num2);
				}

				double n1 = Double.parseDouble(num);
				do {
					switch (oper) {
					case '+':
						ergebnis = n1 + n2;
						break;
					case '-':
						ergebnis = n1 - n2;
						break;
					case '*':
						ergebnis = n1 * n2;
						break;
					case '/':
						ergebnis = n1 / n2;
						break;
					case '^':
						ergebnis = pow(n1, n2);
						break;
					case 's':
						ergebnis = sqrt(n1 / 180 * Math.PI);
						break;
					case 'c':
						ergebnis = cos(n1 / 180 * Math.PI);
						break;
					case 'i':
						ergebnis = sin(n1 / 180 * Math.PI);
						break;
					case 't':
						ergebnis = tan(n1 / 180 * Math.PI);
						break;
					case 'a':
						ergebnis = asin(n1 / 180 * Math.PI);
						break;
					case 'o':
						ergebnis = acos(n1 / 180 * Math.PI);
						break;
					case 'n':
						ergebnis = atan(n1 / 180 * Math.PI);
						break;
					case 'l':
						ergebnis = log10(n1);
						break;
					default:
						bDone = false;
						// default:
						// System.out.println("Ergebnis konnte nicht ermittelt werden.");
						System.out.println("Bitte versuchen Sie es erneut.");
					}

					System.out.printf("Das Ergebnis ist %.2f \n", ergebnis);

					System.out
							.println("-------------------------------------------");
				} while (!bDone);
			} catch (NumberFormatException e) {
				System.out
						.println("Bitte nur Zahlen und gültige Rechenzeichen verwenden. \n");
			}
		}
	}
}
 

chris30o0

Mitglied
bin ich zu blöd?^^
Java:
					default:
						bDone = false;
						// default:
						// System.out.println("Ergebnis konnte nicht ermittelt werden.");
						System.out.println("Bitte versuchen Sie es erneut.");
					}			
				}while (!bDone);
				System.out.printf("Das Ergebnis ist %.2f \n", ergebnis);

					System.out
							.println("-------------------------------------------");
			} catch (NumberFormatException e) {
				System.out
						.println("Bitte nur Zahlen und gültige Rechenzeichen verwenden. \n");
			}
		}
	}
}
 

HimBromBeere

Top Contributor
Hab´s mal für dich funktionstüchtig gemacht...


Java:
import java.io.*;
import static java.lang.Math.*;
 
public class MyClass {
    private static boolean bDone = true;
 
    public static void main(String[] args) throws IOException {
        double ergebnis = 0.0;
        String num;
        String op;
        String num2;
        double n2 = 0;
        BufferedReader bin = new BufferedReader(new InputStreamReader(System.in));
        
        do {
        	try {
        		System.out.printf("Geben Sie die erste Zahl ein: ");
            	num = bin.readLine();
        		System.out.printf("Geben Sie das Rechenzeichen ein: ");
        		op = bin.readLine();

        		char oper = 0;
	            if (op.equalsIgnoreCase("sqr")) {
	                num2 = "";
	                oper = 's';
	            } else if (op.equalsIgnoreCase("cos")) {
	                num2 = "";
	                oper = 'c';
	            } else if (op.equalsIgnoreCase("sin")) {
	                num2 = "";
	                oper = 'i';
	            } else if (op.equalsIgnoreCase("tan")) {
	                num2 = "";
	                oper = 't';
	            } else if (op.equalsIgnoreCase("acos")) {
	                num2 = "";
	                oper = 'o';
	            } else if (op.equalsIgnoreCase("asin")) {
	                num2 = "";
	                oper = 'i';
	            } else if (op.equalsIgnoreCase("atan")) {
	                num2 = "";
	                oper = 'n';
	            } else if (op.equalsIgnoreCase("log")) {
	                num2 = "";
	                oper = 'l';
	            } else {
	            	System.out.printf("Geben Sie die zweite Zahl ein: ");
	                num2 = bin.readLine();
	                n2 = Double.parseDouble(num2);
	            }
	            
	            if ((oper == '/') && (n2 == 0)) {
	                System.out.println("Durch 0 teilen nicht möglich!");
	                System.out.printf("Geben Sie die zweite Zahl erneut ein: ");
	                    num2 = bin.readLine();
	                    n2 = Double.parseDouble(num2);
	            }
	 
	            double n1 = Double.parseDouble(num);
	            switch (oper) {
	                case '+':
	                    ergebnis = n1 + n2;
	                    break;
	                case '-':
	                    ergebnis = n1 - n2;
	                    break;
	                case '*':
	                    ergebnis = n1 * n2;
	                    break;
	                case '/':
	                    ergebnis = n1 / n2;
	                    break;
	                case '^':
	                    ergebnis = pow(n1, n2);
	                    break;
	                case 's':
	                    ergebnis = sqrt(n1 / 180 * Math.PI);
	                    break;
	                case 'c':
	                    ergebnis = cos(n1 / 180 * Math.PI);
	                    break;
	                case 'i':
	                    ergebnis = sin(n1 / 180 * Math.PI);
	                    break;
	                case 't':
	                    ergebnis = tan(n1 / 180 * Math.PI);
	                    break;
	                case 'a':
	                    ergebnis = asin(n1 / 180 * Math.PI);
	                    break;
	                case 'o':
	                    ergebnis = acos(n1 / 180 * Math.PI);
	                    break;
	                case 'n':
	                    ergebnis = atan(n1 / 180 * Math.PI);
	                    break;
	                case 'l':
	                    ergebnis = log10(n1);
	                    break;
	                default:
	                    bDone = false;
	                    System.out.println("Bitte versuchen Sie es erneut.");
	                    continue;
	            }    
	
	            System.out.printf("Das Ergebnis ist %.2f \n", ergebnis);
	            System.out.println("-------------------------------------------");
        	} catch (NumberFormatException e) {
        		System.out.println("Bitte nur Zahlen und gültige Rechenzeichen verwenden. \n");
        		continue;
        	}
        	
        } while(!bDone);
    }
}
 

HimBromBeere

Top Contributor
Auch noch?

Ich hab eigtl. nur die innere Schleife (do) durch den Fleischwolf gehaun und die äußere (while) in eine fußgesteuerte (do) umgewandelt, damit sie in jedem Fall wenigstens einmal durchlaufen wird. Mehr war´s glaub ich nicht... achja, das Continue im default-case nicht zu vergessen, damit sofort mit dem nächsten Schleifendurchlauf weitergemacht wird, ohne erst die Ausgaben "Ergebnis" mitzunehmen...
 

chris30o0

Mitglied
Irgendwas hast du aber falsch gemacht.
Er rechnet nicht mehr, sondern sagt immer "Bitte versuchen Sie es erneut."

EDIT: Und die NumberFormatException macht er auch nicht mehr.
EDIT2: So, du hast jetzt die ganze Nacht Zeit, muss morgen wieder in die Schule, also is Schluss für heute.
 
Zuletzt bearbeitet:

HimBromBeere

Top Contributor
Also bei mir wird alles gemacht, auch die Exception (aber nicht sofort sondern erst nach der Eingabe der zweiten Zahl bzw. dem Operator). Eine Kleinigkeit hab ich trotzdem noch: das continue ganz unten kannst du mal durch
Code:
bDone = false
ersetzen, damit das Programm den nächsten Schleifendurchlauf auch wirklich macht.

EDIT: Wenn du glaubst, ich mach hier deine Aufgaben...:pueh:
 

faetzminator

Gesperrter Benutzer
Will mal nicht so sein :D

Java:
public class MyClass {
	private boolean bDone = true;
	
	public void menu() {
		char oper = '+';
		do {
			switch(oper) {
			    // handle the cases
			    default: bDone = false;
			}
		} while(!bDone);
	}
}

Das funktioniert nur, wenn beim ersten Mal eine korrekte Eingabe gemacht wurde, nach der ersten Fehleingabe wird bDone nie mehr [c]true[/c] sein ;)
 

Gossi

Bekanntes Mitglied
Will mal nicht so sein :D

Java:
public class MyClass {
	private boolean bDone = true;
	
	public void menu() {
		char oper = '+';
		do {
			switch(oper) {
			    // handle the cases
			    default: bDone = false;
			}
		} while(!bDone);
	}
}

So müsste des aussehen:
Java:
public class MyClass {
	private boolean bDone = true;
	
	public void menu() {
		char oper = '+';
		do {
			switch(oper) {
			    case something: doSomething(); bDone = true;
			    default: bDone = false;
			}
		} while(!bDone);
	}
}

PS:
Mist, gibt ja ne zweite Seite....
 

Gossi

Bekanntes Mitglied
Naja, mir ist ja nichtmal genau klar, was du geändert hast.
Mein Quellcode funktioniert ja. Also muss dir ja bei der Schelife irgendein Fehler unterlaufen sein.

Java:
case something: doSomething(); bDone = true;
Habe ich geändert, damit setzt du bDone (also den Boolean der dir sagt, dass der Benutzer die Richtige eingsbe ausgewäht hat) auf true, also wahr, damit du die Schleife verlässt....
 

faetzminator

Gesperrter Benutzer
Nicht zu vergessen das [c]break;[/c], sonst wird die Schleife auch nie verlassen ;) aber ich würde eher den Wert vor dem [c]switch[/c] immer auf [c]true[/c] setzen, sonst hast du da ab 2 Cases doppelten Code...
 

HimBromBeere

Top Contributor
Das mit dem
Code:
bDone = true
hab ich absichtlich nicht gemacht, ich hatte angenommen, das Programm soll nur einmal laufen... (bzw. solange, bis endlich eine gültige Eingabe gemacht wurde).
 

faetzminator

Gesperrter Benutzer
Das mit dem
Code:
bDone = true
hab ich absichtlich nicht gemacht, ich hatte angenommen, das Programm soll nur einmal laufen... (bzw. solange, bis endlich eine gültige Eingabe gemacht wurde).

Das tut nichts zur Sache. Wenn das Programm ein Mal ins default Case fällt, dann ist der boolean (in diesem Objekt) für immer [c]false[/c]! Und das ist falsch. Abgesehen davon programmiert man keine Methoden, welche nur ein Mal laufen können...
 

Gossi

Bekanntes Mitglied
Das mit dem
Code:
bDone = true
hab ich absichtlich nicht gemacht, ich hatte angenommen, das Programm soll nur einmal laufen... (bzw. solange, bis endlich eine gültige Eingabe gemacht wurde).

Früherer Post:
Java:
public class MyClass {
    public void menu() {
        //Wenn du hier bDone definierst gehts auch, dann kannste die Mehtode auch static machen
        boolean bDone = true;
        char oper = '+';
        do {
            switch(oper) {
                // handle the cases
                default: bDone = false;
            }
        } while(!bDone);
    }
}

Man müsste bDone dann halt für die Methode und nicht für das Object defnineren.
 

faetzminator

Gesperrter Benutzer
Man müsste bDone dann halt für die Methode und nicht für das Object defnineren.

Oh, stimmt... was hat mich denn da geritten? Ist mir gar nicht aufgefallen.

Auch dann funktioniert es immer noch nicht... Wie soll [c]bDone[/c] (mal angemerkt, das sollte [c]isDone[/c] heissen) jemals wieder [c]true[/c] werden?
Aber wie auch immer, es macht wohl keinen Sinn hier zu diskutieren. Dieser Code wird sowieso nie irgendwo eingebaut. Und wenn schon, dann wird es diese Person dann merken...
 

Gossi

Bekanntes Mitglied
Auch dann funktioniert es immer noch nicht... Wie soll [c]bDone[/c] (mal angemerkt, das sollte [c]isDone[/c] heissen) jemals wieder [c]true[/c] werden?
Aber wie auch immer, es macht wohl keinen Sinn hier zu diskutieren. Dieser Code wird sowieso nie irgendwo eingebaut. Und wenn schon, dann wird es diese Person dann merken...
???:L
Java:
MyClass.menue(); //Ungültige Eingabe isDone = false;
MyClass.menue(); //isDone = true, wenn die Eingabe gültig ist.
MyClass mc = new MyClass();
mc.menue(); //Ungültige Eingabe isDone = false;
mc.menue(); //isDone = true, wenn die Eingabe gültig ist.
 

chris30o0

Mitglied
Ihr verweirrt mich :D
Bitte vergesst nicht, dass das das erste mal ist, dass ich mit Java arbeite^^
Ich habe so das Gefühl, dass ihr euch auch alle nicht einig seid.
Ich habe jetzt den letzten Quellcode von HimBromBeere so übernommen, und festegestellt, dass er bei falscher oper Eingabe nicht mehr aus der Schleife kommt.
Und wo genau nun bDone=true hin muss ist mir auch noch nicht so ganz klar.
 

Gossi

Bekanntes Mitglied
Ihr verweirrt mich :D
Bitte vergesst nicht, dass das das erste mal ist, dass ich mit Java arbeite^^
Ich habe so das Gefühl, dass ihr euch auch alle nicht einig seid.
Ich habe jetzt den letzten Quellcode von HimBromBeere so übernommen, und festegestellt, dass er bei falscher oper Eingabe nicht mehr aus der Schleife kommt.
Und wo genau nun bDone=true hin muss ist mir auch noch nicht so ganz klar.

Jedesmal, wenn eine Operation richtig eingegeben wurde musst du bDone/isDone auf true setzen.

Oder halt einmal am Anfang der Schleife
 

chris30o0

Mitglied
Also könnte ich einfach nach jedem case bDone = true einfügen.
Also etwa so:
Java:
					case '+':
						ergebnis = n1 + n2; bDone=true;
						break;
					case '-':
						ergebnis = n1 - n2; bDone=true;
						break;
Falls du das so meinst -> geht nicht.
Aber ich habe irgendwie Zweifel, dass es an dieser Stelle hakt.
Ich glaube eher, dass beim default irgendwas nicht in Ordnung ist.
 

faetzminator

Gesperrter Benutzer
Was willst du mir damit zeigen? Du wirst gar nie aus dieser do-while Schleife rauskommen. Siehst du das denn nicht? Das funktioniert nur, wenn man es so macht:
Java:
char oper = '+';
do {
    boolean isDone = true;
    switch(oper) {
        // handle the cases
        default: isDone = false;
    }
} while(!isDone);

Edit:
Also könnte ich einfach nach jedem case bDone = true einfügen.

Klar könntest du das. Über das haben wir bereits gesprochen. So hast du redundanten Code. Aber immerhin würde er laufen...
 

Gossi

Bekanntes Mitglied
Oder ums direkt mit deinem Code zu zeigen:
Java:
bool isDone = false;
while(!isDone) {
    isDone = true;
    double n1 = Double.parseDouble(num);
    switch (oper) {
        case '+': ergebnis = n1+n2;
            break;
        case '-': ergebnis = n1-n2;
            break;
        case '*': ergebnis = n1*n2;
            break;
        case '/': ergebnis = n1/n2;
            break;
        case '^': ergebnis = pow(n1,n2);
            break;
        case 's': ergebnis = sqrt(n1/180*Math.PI);
            break;
        case 'c': ergebnis = cos(n1/180*Math.PI);
            break;
        case 'i': ergebnis = sin(n1/180*Math.PI);
            break;
        case 't': ergebnis = tan(n1/180*Math.PI);
            break;
        case 'a': ergebnis = asin(n1/180*Math.PI);
            break;
        case 'o': ergebnis = acos(n1/180*Math.PI);
            break;
        case 'n': ergebnis = atan(n1/180*Math.PI);
            break;
        case 'l': ergebnis = log10(n1);
            break;
        default: System.out.println("Ergebnis konnte nicht ermittelt werden.");
            System.out.println("Bitte versuchen Sie es erneut.");
            isDone = false;
    }
}
 

chris30o0

Mitglied
So, es läuft nun zwar wieder, er sagt aber trotzdem, dass das Ergebnis 0 ist.
Das Ziel dieser zwei Seiten war doch aber genau das Gegenteil.
Das Ergebnis soll nur ausgegeben werden, wenn default nicht eintritt.

EDIT: @Gossi:
Das ist zwar schon wieder anders, als ich es eben hätte, das Ergebnis wird trotzdem ausgegeben.
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
Say public/default Interface Java Basics - Anfänger-Themen 9
berserkerdq2 Wie datum im default format speichern? Java Basics - Anfänger-Themen 5
S Default Konstruktor Java Basics - Anfänger-Themen 7
Igig1 Welche Werte sind als default Werte in einem Array, der als Datentyp eine Klasse hat? Java Basics - Anfänger-Themen 1
X Default Parameter Java Basics - Anfänger-Themen 20
J Java Queue mit default Werten erstellen Java Basics - Anfänger-Themen 4
V Datentypen Default Package Java Basics - Anfänger-Themen 1
F Java default Konstruktor Java Basics - Anfänger-Themen 1
B Drucken: Default Paper von Drucker? Mein Drucker druckt falsch Java Basics - Anfänger-Themen 3
K Welchen Typ haben Variablen in Default-Methoden und in statischen Methoden in Schnittstellen? Java Basics - Anfänger-Themen 4
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
O Konstruktor und Default Konstruktor Java Basics - Anfänger-Themen 7
J swich case-default Java Basics - Anfänger-Themen 2
B In welchem (Default) Pfad erstellt Java Dateien? Java Basics - Anfänger-Themen 4
G default class type Java Basics - Anfänger-Themen 3
J Zugriff auf Variable vom typ (default) durch Importieren des Packages? Java Basics - Anfänger-Themen 5
T Datentypen default ist int, cast zu byte nötig... Java Basics - Anfänger-Themen 2
T Applet init() funktioniert nur im default package Java Basics - Anfänger-Themen 5
K Datentypen Default Initialisierung Java Basics - Anfänger-Themen 8
W Default Constructor Java Basics - Anfänger-Themen 4
S default Konstruktor Java Basics - Anfänger-Themen 2
J jComboBox auf default setzen wie? Java Basics - Anfänger-Themen 3
H OOP java.sql.Date does not have a no-arg default constructor Java Basics - Anfänger-Themen 2
F import Statement für Klassen die dem default Package zugeordnet sind? Java Basics - Anfänger-Themen 2
B Default Konstruktor Java Basics - Anfänger-Themen 3
S Kennt jemand die Default-Cache Zeit beim Java-Plugin? Java Basics - Anfänger-Themen 2
W Funktionen mit Default werten Java Basics - Anfänger-Themen 10
P Konstruktor default Werte Java Basics - Anfänger-Themen 4
M OOP frage, private variablen default-wert zuweisen sinnvoll? Java Basics - Anfänger-Themen 5
G Default-Listener bei Textboxen Java Basics - Anfänger-Themen 10
U public, private, protected und "default access" - Java Basics - Anfänger-Themen 14
J Default Button bei jDialog Java Basics - Anfänger-Themen 2
X JOptionPane.YES_NO_OPTION default Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben