hilfe bei verbesserung von code

lennero

Bekanntes Mitglied
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?

Java:
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);
   
    }
}
 
Java:
do {
  // eingabe = ...
  if(eingabe.equals("ende") {
    // ...
  } else {
    // ...
  }
} while (!eingabe.equals("ende"));

Mit freundlichen Grüßen
Xelsarion
 
so ?

Java:
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);
   
    }
}
 
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.
 
  1. Müsstest du eingabe verändern, bevor du es hinzufügst.
  2. Kannst du es dann auch direkt hinzufügen, statt es zu verändern.
  3. Ist satz += "."; dann redundant.
Mit freundlichen Grüßen
Xelsarion
 
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?
 
jetzt tuts was es soll danke!

Java:
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);
    }
}
 
Zuletzt bearbeitet von einem Moderator:

Zurück
Oben