Ich bekomme ständig einen Fehler und finde keinen Ausweg. Es handelt sich hierbei um "else without if". Ziel des Programmes ist es die Daten eines Kunden in ein Array zu speichern. Das versuche ich mithilfe einer While Schleife zu lösen. Könnte jemand vielleicht versuchen den Fehler rauszubekommen und in leicht verständlich dokumentieren.
Code:
public class Objektverwaltungsklasse
{ protected Konto meineKonten[];
protected String Fehlermeldung="";
public Objektverwaltungsklasse()
{ meineKonten = new Konto[20];
}
public void speichern(Konto oKonto)
{
boolean Taschentuch=false;
int i=0;
while(Taschentuch == false && i<=meineKonten.length){
if (meineKonten[i] = null){
meineKonten[i] = oKonto;
Taschentuch = true;
else { // Hier soll der Fehler sein!
i++;}
}
if(Taschentuch==false){
Fehlermeldung="Kein Speicherplatz vorhanden";
}
}
}
Deine erste if Bedingung (Zeile 13) öffnet einen neuen Block mit {. Vor dem else mußt Du diesen Block wieder schliessen, damit der Compiler das zuordnen kann. Die schließende Klammer hinter dem i++ ist sicherlich falsch.
hab nun nen anderen Fehler. Unhabhängig von der While Schleife.
Wenn der Kontostand nach einer Auszahlung in den Minusbereich geht, soll eine Fehlermeldung erfolgen, in der steht, dass das Konto nicht gedeckt wurde. Konto.java und KontoGUI.java wurden erfolgreich compiliert, dennoch wird die Fehlermeldung nicht ausgegeben.
Konto.java
Code:
public void auszahlen(float Auszahlungsbetrag)
{
if (Kontostand>=Auszahlungsbetrag){
Kontostand=Kontostand-Auszahlungsbetrag;
}
else {
Fehlermeldung="Das Konto wurde nicht gedeckt";
}
}
KontoGUI.java
Code:
public void btnAuszahlenActionPerformed(ActionEvent evt) {
meinKonto.setKontostand(meinKonto.Kontostand-(Float.parseFloat(this.edtAuszahlen.getText())));
edtFehlermeldung.setText(meinKonto.getFehlermeldung());
Du willst die Fehlermedung in in deinem Ausschnitt von Konto.java Zeile 18 sehen richtig? Die befindet sich in einer Methode public void auszahlen(float Auszahlungsbetrag). In deinem Ausschnitt von KontoGUI.java rufst du aber die Methode auszahlen(float) gar nicht auf, sondern eine Methode setKontostand(). Folglich kann die Fehlermeldung nicht gesetzt werden.