wieso geht das nicht.

Status
Nicht offen für weitere Antworten.
P

programmiene

Gast
hi !
habe folgendes programm...

Code:
import java.io.*;
import java.nio.charset.*;

public class a2 {
	public static void main(String[] args){

		InputStreamReader isr=new InputStreamReader(System.in);
		BufferedReader br=new BufferedReader(isr);
		
		double zahl1=0.0, zahl2=0.0, ergebnis=0.0;
		String input=null;
		
		
		// Erste Zahl einlesen
		System.out.println("Bitte geben Sie die erste Zahl ein:");
		try{
	   		input=br.readLine();
	   	}
		catch(IOException e){}
		//Eingabe von String nach double wandeln
		zahl1=Double.parseDouble(input);
	 
		
		// Zweite Zahl einlesen
		System.out.println("Bitte geben Sie die zweite Zahl ein:");
		try{
	   		input=br.readLine();
	   	}
		catch(IOException e){}
		//Eingabe von String nach double wandeln  
		zahl2=Double.parseDouble(input);
		
		
		//Operator eingeben
		System.out.println("Bitte geben Sie den Rechenoperator an:");
		try{
	   		char operator = br.readLine().trim().charAt(0);	// trim() entfernt Leerzeichen  														// charAt(0) = erstes Zeichen des Strings 
	   	}
		catch(IOException e){} 
	
		//Eingegebenen Zahlen berechnen
		switch (operator) {
			case '+':   // addieren
						ergebnis = zahl1 + zahl2;
						System.out.println(zahl1 + " + " + zahl2 + " = " + ergebnis);
						break;
						
			case '-':   // subtrahieren
						break;
						
			case '*':   // multiplizieren
						break;
						
			case '/':   // dividieren
						break;
						
			default:
			System.out.println( "Operand nicht definiert!" );
		}
   
   }
   
}

und bekomme die fehlermeldung

Code:
a2.java:44: cannot resolve symbol
symbol  : variable operator
location: class a2
                switch (operator) {
                        ^
1 error

aber was mache ich falsch... :( das müsste doch eigentlich gehen...
wer weiss rat!?

danke für jede hilfe...
 

mic_checker

Top Contributor
Code:
      try{
            char operator = br.readLine().trim().charAt(0);   // trim() entfernt Leerzeichen                                            // charAt(0) = erstes Zeichen des Strings
         }
      catch(IOException e){}
   
      //Eingegebenen Zahlen berechnen
      switch (operator) {

Du deklarierst operator innerhalb vom try..catch Block, außerhalb dieses Blocks ist die Variable nicht sichtbar. Deklarier sie außerhalb des Blocks und er sollte diesbezüglich nicht mehr meckern...
 

mic_checker

Top Contributor
Noch was anderes:
- Nächstens bitte einen aussagekräftigeren Namen für den Thread wählen
- Klassennamen werden groß geschrieben

Code:
zahl1=Double.parseDouble(input); 
...
zahl2=Double.parseDouble(input);
- hier solltest du noch die NumberFormatException abfangen....
 
G

Guest

Gast
werde ich mache... :) wie fange ich denn diese NumberExeptions ab!? und wo zu ist das gut.
 

mic_checker

Top Contributor
Na so wie jede andere Exception auch:

Code:
try {
zahl1=Double.parseDouble(input); 
} catch(NumberFormatException nfe) {
nfe.printStackTrace();
}

Du könntest das ganze auch gleich in die try...catch vom vorherigen Block schreiben und zusammen mit dem User Input behandeln (also neben IOException noch die NumberFormatException abfangen).

Wozu das gut ist?

Falls der User was eingibt was der Compiler nicht parsen kann, z.B. er gibt für die erste Zahl "a,e2" ein oder so was....
 
G

Guest

Gast
ok, ich denke ich habe diese NumberFormatExeption jetzt gemacht. aber mal eine andere frage, ich habe jetzt ganz viele try-blöcke hinter einander... kann ich diese vielleicht auch irgendwie zusammenfassen um code zu sparen, oder um es auch übersichtlicher zumachen?
 

mic_checker

Top Contributor
DU kannst, wenn du willst, einen großen machen, der IOException und NumberFormatException abfängt, in dem Block dann readLine() und parseDouble() entsprechend aufrufen (wie bisher)...

Btw. du solltest zumindest nen StackTrace ausgeben lassen (in catch), also z.B.

Code:
try {
...
} catch(IOException ioe) {
ioe.printStackTrace();
}
 
P

programmiene

Gast
wow... ich komme grad nicht ganz mit...
das müsste dann in etwa so aussehen, oder

Code:
		// Erste Zahl einlesen
		System.out.println("\n\n\nBitte geben Sie die erste Zahl ein:");
		try{
	   		input=br.readLine();
	   		zahl1=Double.parseDouble(input);
	   	}
		catch(IOException ioe){}
	 	catch(NumberFormatException e){}
		
		// Zweite Zahl einlesen
		System.out.println("\nBitte geben Sie die zweite Zahl ein:");
		try{
	   		input=br.readLine();
	   		zahl2=Double.parseDouble(input);
	   	}
		catch(IOException ioe){}
		catch(NumberFormatException e){}

oder?

ist es egal, welchen namen ich den exception gebe?

wenn ich das programm ausführe und dann einen buchstaben statt einer zahl eingebe, dann wird die exception ausgegeben?! bei mir reagiert der gar nicht darauf... :(
 

mic_checker

Top Contributor
Du solltest dir noch den StackTrace ausgeben lassen:

Code:
try {
..
      } catch(IOException ioe) {
	         ioe.printStackTrace();
	   } catch(NumberFormatException nfe) {
		   	nfe.printStackTrace();
		   }

Dann sollte er im Fall der Fälle die Fehlermeldung ausgeben
 
P

programmiene

Gast
cool... :) danke...
ist das jetzt nur für eine zahl, oder kann ich das auch gleich für beide benutzen?! :)
 

mic_checker

Top Contributor
Wenn du einen großen try..catch Block machst, dann reicht es im entsprechenden catch Block den StackTrace auszugeben. Ansonsten musst du halt in deinem zweiten try...catch Block entsprechendes ausgeben.

Du musst ja selbstverständlich das ganze auf beide Zahlen anwenden, da es keinen Sinn macht die eine Zahl zu überprüfen, die andere aber net ;)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
C Problem, wieso geht das nicht? Java Basics - Anfänger-Themen 5
A Wieso geht das nicht? Java Basics - Anfänger-Themen 4
V Wie und wieso geht dieser Methodenaufruf? Java Basics - Anfänger-Themen 2
P Wieso kann ich als Index für einen Array einen Char angeben? Java Basics - Anfänger-Themen 3
Ostkreuz Wieso wird die Methode nochmal aufgerufen? Java Basics - Anfänger-Themen 5
H Interface Wieso "List<String> list = new ArrayList<>[…]" Java Basics - Anfänger-Themen 4
I Methoden Wieso wird mein Array "a" verändert und meine Variable "a" nicht? Java Basics - Anfänger-Themen 4
sserio Wieso funktioniert mein Programm nicht Java Basics - Anfänger-Themen 2
sserio Wieso werden nicht alle Primzahlen bis 1000 in meine Liste gepackt ? Java Basics - Anfänger-Themen 8
sserio Wieso funktioniert mein TableView nicht /JavaFX. Java Basics - Anfänger-Themen 4
N Wieso funktioniert die Deklaration nicht Java Basics - Anfänger-Themen 3
Zrebna Umgebungsvariable Wieso wird meine verwendete JDK-Version in der Prompt nicht erkannt? Java Basics - Anfänger-Themen 6
F Wieso wird immer die falsche Mausposition angegeben? Java Basics - Anfänger-Themen 1
C Objekt1.equals(Objekt2) = immer false. Wieso? Java Basics - Anfänger-Themen 22
A Wieso bekomme ich hier zwei unterschiedliche Ausgaben? Java Basics - Anfänger-Themen 6
J Fehler im Code, aber ich weiß nicht wieso! Java Basics - Anfänger-Themen 6
ZH1896ZH Wieso diese Ausgabe?? Java Basics - Anfänger-Themen 10
W Wieso funktioniert mein Switch Case nicht ?! Java Basics - Anfänger-Themen 9
D Interface Wieso Aufruf aller Methoden eines Interfaces? Java Basics - Anfänger-Themen 11
F Wieso wird dieser Befehl nicht ausgeführt? (Anfänger) Java Basics - Anfänger-Themen 2
H Datentypen 64 Bit passt in 32 Bit, wieso? Java Basics - Anfänger-Themen 9
L Input/Output Wieso kommt diese Ausgabe? Java Basics - Anfänger-Themen 12
H Wieso wird mir ein Fehler angezeigt? Java Basics - Anfänger-Themen 5
H Wieso öffnet sich der Texteditor? Java Basics - Anfänger-Themen 6
ChrisPL4Y Wieso funktioniert dieses Programm nicht? Java Basics - Anfänger-Themen 6
B Wieso wird die Zeile "column" genannt und die Spalte "line"? Java Basics - Anfänger-Themen 12
B Wieso wird hier so viel als falsch angezeigt? Java Basics - Anfänger-Themen 2
B Wieso gibt er hier nur die ungeraden Zahlen aus? Java Basics - Anfänger-Themen 5
B Wieso gibt das Programm in der Console kein Ergebnis aus? Java Basics - Anfänger-Themen 2
A Wieso charAt(0) + charAt(3) = INT-Wert? Java Basics - Anfänger-Themen 5
H NullPointerException, aber wieso? Java Basics - Anfänger-Themen 5
P Cannot find symbol, wieso? Java Basics - Anfänger-Themen 5
K Wieso muss man finale statische Variablen sofort oder eben im Konstruktor initialisieren? Java Basics - Anfänger-Themen 2
F Operatoren Wieso fliegt hier eine NullPointer Exception :( Java Basics - Anfänger-Themen 3
Z JPanel wird zweimal hinterinander gezeichnet.. Wieso? Java Basics - Anfänger-Themen 4
T Wieso kann ich das jar file nicht starten? Java Basics - Anfänger-Themen 5
S Wieso wird mein JFrame transparent dargestellt? Java Basics - Anfänger-Themen 5
G Interface java.util.Comparator: Wieso muss nur die Methode compare() implementiert werden Java Basics - Anfänger-Themen 2
A Wieso übergibt der nicht die bearbeitete txt file Java Basics - Anfänger-Themen 8
Z Lotto-Programm Wieso klappt das? Java Basics - Anfänger-Themen 8
P Compiler-Fehler wieso zeigt der compiler ein else without if? Java Basics - Anfänger-Themen 3
S OOP Die Methode funktioniert, aber wieso? Java Basics - Anfänger-Themen 2
X Connection reset, wieso? Java Basics - Anfänger-Themen 4
T Objektorientierte Programmierung - Kein Plan wieso das nicht funktioniert! Java Basics - Anfänger-Themen 6
A Bild verschwindet! Wieso?? Java Basics - Anfänger-Themen 2
A Wieso kann ich nicht auf diese Variable zugreifen? Java Basics - Anfänger-Themen 6
A Wieso funktioniert dieser Timer nicht?? Java Basics - Anfänger-Themen 3
A Wieso denn das??? Java Basics - Anfänger-Themen 2
A Wieso erscheinen die Objekte manchmal und manchmal nicht Java Basics - Anfänger-Themen 2
A Erste Schritte Wieso funktioniert diese Klasse nicht Java Basics - Anfänger-Themen 11
R Wieso funktioniert dieses Array nicht? Java Basics - Anfänger-Themen 13
S Methoden void-Methode: Wieso gibt es eine Rückgabe? Java Basics - Anfänger-Themen 5
X Stack mit Oberklasse, wieso funktioniert es nicht? Java Basics - Anfänger-Themen 8
SexyPenny90 Wieso ist diese eigene Equals-Methode schlecht? Java Basics - Anfänger-Themen 17
C Klassen Wieso kein infiniter Regress? Java Basics - Anfänger-Themen 4
M ArrayList - remove() löscht nicht! - weiß nicht wieso! Java Basics - Anfänger-Themen 8
X Wieso mehrere JRE ordner? Java Basics - Anfänger-Themen 8
J Regex Ausdrücke im Array - Wieso werden sie nicht erkannt? Java Basics - Anfänger-Themen 4
A Wieso wird immer 0 ausgegeben? Java Basics - Anfänger-Themen 4
R Wieso hat ein Konstruktor keinen Rückgabetyp? Java Basics - Anfänger-Themen 6
T JTable wird nicht erzeugt, wieso? Java Basics - Anfänger-Themen 17
S JTable removeRow() IndexOutOfBounceException - wieso? Java Basics - Anfänger-Themen 3
S wieso Fehlermeldung cannot find symbol hier Java Basics - Anfänger-Themen 10
N NumberFormatException, aber wieso? Java Basics - Anfänger-Themen 5
E Wieso funktioniert Boolean.parseBoolean(s) nicht? Java Basics - Anfänger-Themen 9
T Wieso kompiliert das? Java Basics - Anfänger-Themen 7
B Erste Schritte Programm kompiliert nicht. Wieso? Java Basics - Anfänger-Themen 14
Luk10 Wieso bricht die Rekursion nicht ab? Java Basics - Anfänger-Themen 3
B Warnung : Dead Code. Aber wieso? Java Basics - Anfänger-Themen 10
W Compiler-Fehler NullPointerException. Aber wieso? Java Basics - Anfänger-Themen 2
C Conways Game of Life / "Waldbrandsimulation": wieso temporäres Hilfs-Array?! Java Basics - Anfänger-Themen 8
R If-Abfrage liefert false zurück, wieso ? Java Basics - Anfänger-Themen 20
K Methode funzt nicht, wieso? Java Basics - Anfänger-Themen 12
H Wieso ist das eine Endlosschleife? Java Basics - Anfänger-Themen 8
R wieso Nullpoint und was mit Events ? Java Basics - Anfänger-Themen 14
C Wieso funktioniert das Array nicht? Java Basics - Anfänger-Themen 10
R Wieso hänge ich hier in einer Endlosschleife (vermute ich zumindest)? Java Basics - Anfänger-Themen 2
M Wieso funktioniert dieser simple Code nicht? Java Basics - Anfänger-Themen 9
J Wert wird überschrieben, weiß nicht wieso Java Basics - Anfänger-Themen 2
S wieso ist mein Code falsch? Java Basics - Anfänger-Themen 2
D array.toString() wieso funktioniert es nicht Java Basics - Anfänger-Themen 4
A Wieso terminiert das Programm nicht? Java Basics - Anfänger-Themen 4
B Wieso ein Fehler? illegal Starts of expression? Java Basics - Anfänger-Themen 12
radiac Wieso bekomme ich kein Bild drauf??? Java Basics - Anfänger-Themen 13
Hatebreed Keine Datenbankverbindung, wieso? (ClassNotFoundEscpetion) Java Basics - Anfänger-Themen 18
U Anfänger Frage - Ausgabe funktioniert nicht - Wieso? Java Basics - Anfänger-Themen 10
G Wieso enum Declaration nur außerhalb einer Methode möglich? Java Basics - Anfänger-Themen 9
S Wieso funtkioniert das SQL DELETE nicht? Java Basics - Anfänger-Themen 1
K Wieso schaltet meine CheckBox von selbst um ? Java Basics - Anfänger-Themen 31
fill0soph Wieso ist "Minus-Unendlich" == 1? Java Basics - Anfänger-Themen 4
G Wieso werdne die componentne nciht angezeigt Java Basics - Anfänger-Themen 4
B Primzahlen berechnen - Wieso unterschiedliche Java Basics - Anfänger-Themen 3
K Wieso wird "paint" nicht ausgeführt ? Java Basics - Anfänger-Themen 2
F Wieso java.lang.StackOverflowError (minimales programm) Java Basics - Anfänger-Themen 11
G Wieso eine nullpointerexception? Java Basics - Anfänger-Themen 6
G Wieso ist eine String-Übergabe keine by-reference-Zuweisung? Java Basics - Anfänger-Themen 7
K Wieso kommt ne NullPointerException Java Basics - Anfänger-Themen 3
N Wieso final ? Java Basics - Anfänger-Themen 4
H wieso syntax error bei else ? Java Basics - Anfänger-Themen 3
H wieso fehler ? must return a type of int. Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben