# hilfe bei verbesserung von code



## lennero (2. Dez 2015)

der code soll sobald start eingegeben wird wörter einlesen und wenn ende eingegeben wird soll statt ende ein punkt ausgegeben werden. am ende wird mit der dialogbox ein satz ausgegeben der aus den wörtern besteht. allerdings wird am ende das "ende" mit ausgegeben wird also nicht vom punkt überschrieben. wie kann ich das machen?


```
import javax.swing.JOptionPane;

public class satz{
    public static void main(String[]args){
        String satz = "";
        String eingabe;
   
        do{      
            eingabe=JOptionPane.showInputDialog("Geben sie ein Wort ein");        
        }
        while (!eingabe.equals("start"));
   
        do{      
            eingabe=JOptionPane.showInputDialog("Geben sie ein Wort ein");
            satz+=" "+eingabe;
        }
        while (!eingabe.equals("ende"));
        satz+=".";
        JOptionPane.showMessageDialog(null,"Der Satz lautet"+satz);
   
    }
}
```


----------



## Khal Drogo (2. Dez 2015)

```
do {
  // eingabe = ...
  if(eingabe.equals("ende") {
    // ...
  } else {
    // ...
  }
} while (!eingabe.equals("ende"));
```

Mit freundlichen Grüßen
Xelsarion


----------



## lennero (2. Dez 2015)

so ?


```
import javax.swing.JOptionPane;

public class satz{
    public static void main(String[]args){
        String satz = "";
        String eingabe;
   
        do{      
            eingabe=JOptionPane.showInputDialog("Geben sie ein Wort ein");        
        }
        while (!eingabe.equals("start"));
   
        do{      
            eingabe=JOptionPane.showInputDialog("Geben sie ein Wort ein");
            satz+=" "+eingabe;
          
            if(eingabe.equals("ende")){
                eingabe=".";
            }
          
            else {
              
              
            }
          
        }
        while (!eingabe.equals("ende"));
        satz+=".";
        JOptionPane.showMessageDialog(null,"Der Satz lautet"+satz);
   
    }
}
```


----------



## Tobse (2. Dez 2015)

Hast du den Code getestet, den du gepostet hast? Ich wette nicht, er wird nämlich nicht funktionieren.

Was macht _satz+=" "+eingabe;_ ? Und wie wirkt sich das auf den _satz_-String aus, dort wo es momentan steht?

Wenn du diese zwei Fragen beantworten kannst fällt dir vielleicht auch ein, wo du das _satz+=" "+eingabe;_ hinschreiben kannst, damit der Code funktioniert.


----------



## Khal Drogo (2. Dez 2015)

Müsstest du _eingabe_ verändern, bevor du es hinzufügst.
Kannst du es dann auch direkt hinzufügen, statt es zu verändern.
Ist _satz += ".";_ dann redundant.
Mit freundlichen Grüßen
Xelsarion


----------



## lennero (3. Dez 2015)

Tobse hat gesagt.:


> Hast du den Code getestet, den du gepostet hast? Ich wette nicht, er wird nämlich nicht funktionieren.
> 
> Was macht _satz+=" "+eingabe;_ ? Und wie wirkt sich das auf den _satz_-String aus, dort wo es momentan steht?
> 
> Wenn du diese zwei Fragen beantworten kannst fällt dir vielleicht auch ein, wo du das _satz+=" "+eingabe;_ hinschreiben kannst, damit der Code funktioniert.



mit satz+=" "+eingabe wird dem leeren string satz ein leerzeichen und das eingegebene wort hinzugefügt. es steht bei do while(!end) damits erst nach eingabe von begin hinzugefügt wird.

wenn ich also sage if(eingabe.equals(ende){satz+="."    }

else {
satz+=" "+eingabe
}

fügt er im falle "ende" dem leeren string nur einen punkt hinzu ?

ich kann es erst morgen testen aber so müsste es doch klappen oder?


----------



## lennero (3. Dez 2015)

jetzt tuts was es soll danke!


```
import javax.swing.JOptionPane;

public class satz{
    public static void main(String[]args){
        String satz = "";
        String eingabe;
        do{      
            eingabe=JOptionPane.showInputDialog("Geben sie ein Wort ein");        
        }
        while (!eingabe.equals("begin"));
        do{      
            eingabe=JOptionPane.showInputDialog("Geben sie ein Wort ein");
            if(eingabe.equals("end")){
                     satz+=".";
            }  else {
                  satz+=" "+eingabe;
            }
        }
        while (!eingabe.equals("end"));
        JOptionPane.showMessageDialog(null,"Der Satz lautet"+satz);
    }
}
```


----------

