Textausgabe

chrisjahl

Erfahrenes Mitglied
Hallo zusammen,

habe wieder angefangen java zu prgrammieren und da bekomm ich schon beim ersten in schwierigkeiten:

Bei dem Programm soll der Benutzer in 2 Testfeldern jeweils eine Zahl eingeben, dann kann er aus einer JComboBox auswahlen welche Rechenoperation durchgeführt werden soll (+ - / * ). Das Ergebnis wird dann in ein anderes textfeld ausgegeben

Code:
    private void addieren_actionPerformed(ActionEvent e) {
    
    String a;
    String b;
    int c;
    String k;
    String s = (String)auswahl.getSelectedItem();
    
    
    a=erstezahl.getText();
    int i = Integer.parseInt(a);
    
    b=zweitezahl.getText();
    int h = Integer.parseInt(b);
    
        
    
    int l=Integer.parseInt(s);
    
    if(l==0)
    c=h+i;
    else if (l==1)
    c=h-i;
    else if (l==2)
    c=h/i;
    else if(l==3)
    c=h*i ;
    
    k = String.valueOf(c);
    
    summe.setText(k);
        
    }


Er Schreibt als Fehlermeldung: Error(153,24): variable c might not have been initialized


Benutze Jdeveloper

vielen dank im voraus
 
Code:
int i = Integer.parseInt(erstezahl.getText());
Du könntest es ein wenig verkürzen. Hier fällt das Zwischenspeichern in einer Variable weg.
Dann kannst du direkt in den If-Verzweigung die Funktion getSelectedItem() auf auswahl ausführen.

Code:
 String s = (String)auswahl.getSelectedItem();
hier bekommst du einen int und wandelst in in einen String um

Code:
int l=Integer.parseInt(s);
und hier machst du aus dem String wieder einen int. Doppelte arbeit!
Des weiteren würde man bei diesem Beispiel keine if-Verzweigungen nehmen sondern switch/case.

Code:
int a = Integer.parseInt(erstezahl.getText());
int b = Integer.parseInt(zweitezahl.getText());
int c = auswahl.getSelectedItem();

switch(c)
	{
	case 0:
		summe.setText(a+b);
	case 1:
		summe.setText(a-b);
	case 2:
		summe.setText(a/b);
	case 3:
		summe.setText(a*b);

	}
 
Zuletzt bearbeitet:
Zurück