Schleife wird nicht richtig abgearbeitet

JensMander

Bekanntes Mitglied
Hallo Forum,
ich führe ein Servlet aus dem zwei Werte übergeben werden.
Anfangs wird getestet ob diese Werte einen bestimmten Wert haben, besitzen Sie diesen wird der String error verändert. Ist der Wert nicht vorhanden so bleibt der String error bestehen.

AM Ende soll in Abhängigkeit vom String error Funktion a oder Funktion b ausgeführt werden, leider wird Funktion b immer ausgeführt, was aber zu einem Error führt. Ich weiß aber nicht woran es liegt, da dieser Fall durch die Vorkontrollen nicht eintreffen dürfte.

Über Hilfe wäre ich sehr dankbar.
mfg
Jensen
Java:
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		String datum = request.getParameter("datum");
		String wetterstation = request.getParameter("wetterstation");
		
		String error = "OK";
		if (datum == "Datumwählen" && wetterstation == "Wetterstation")
		{
			
			error = "Bitte wählen Sie über die Kalenderfunktion ein Datum aus<br> und legen Sie über die Kartenfunktion eine Wetterstation fest!";
			
		}
		else{};
		if (datum =="Datumwählen" && wetterstation == "Wetterstation auswählen")
		{
			error = "Bitte wählen Sie über die Kalenderfunktion ein Datum <br> und über die Liste eine Wetterstation aus!";
			
		}
		else{};
		if (datum =="Datumwählen" && wetterstation != "Wetterstation")
		{
			error = "Bitte wählen Sie über die Kalenderfunktion ein Datum aus!";
			System.out.println(error);
		}
		else{};
		if (datum =="Datumwählen" && wetterstation != "Wetterstation auswählen")
		{
			error = "Bitte wählen Sie über die Kalenderfunktion ein Datum aus!";
			System.out.println(error);
		}
		else{};
		if (datum !="Datumwählen" && wetterstation == "Wetterstation")
		{
			error = "Bitte Sie über die Kartenfunktion eine Wetterstation fest!";
			System.out.println(error);
		}
		else{};
		if (datum != "Datumwählen" && wetterstation == "Wetterstation auswählen")
		{
			error = "Bitte wählen Sie über die Liste eine Wetterstation aus!";
			System.out.println(error);
		}
		else{};
		if (error=="OK")
		{
			simulation sim = new simulation();
			String [][]webinfos = sim.hauptprogramm(datum,wetterstation); 
		    //Übergabe als HTML-Code
		    response.setContentType("text/html");
			PrintWriter out = response.getWriter();
			out.println("<h1 id='title'>Erstauftretten der Entwicklungsstadien (Stand:"+datum+")</h1>");
			out.println("<table>");
			for(int i=0;i<webinfos.length;i++)
				{
				out.println("<tr>");
				for (int j=0;j<webinfos[i].length;j++)
				if(j!=0){
					out.println("<td>");
					out.println(webinfos[i][j]+"<br>");
					out.println("</td>");
				}
				else
				{
					out.println("<td>");
					out.println(webinfos[i][j]);
					out.println("</td>");
				}
				out.println("</tr>");
				}
			out.println("</table>");
			out.println(error);
			
		}
		else
		{
			response.setContentType("text/html");
			PrintWriter out = response.getWriter();
			out.println("<h1 id='title'> Achtung!</h1>");
			out.println(error);
		};
	}
 
direkt in JEE einsteigen? Also wenn man nicht weiß, dass man Strings mit equals vergleicht und ein if auch ohne else funktioniert, sollte man ganz am anfang von JSE anfangen...
 
deine

if bedingungen sind ein horror.

man kann if auch in einander verschateln.
Java:
if (datum.equals("Datumwählen")){
  if (wetterstation.equals("..."){
    //Tu was
  }else if(wetterstation.equals("wasanderes"){
    // tu was anderes
  }
}else{



}

lies dir zuvor mal ein Paar anfänger Tutorials durch bevor du mit JEE beginnst
 
wenn du die if Bedingungen noch umdrehst, musst du nicht einmal auf null überprüfen..
Java:
if ("Datumwählen".equals(datum)){
  if ("...".equals(wetterstation)){
    //Tu was
  }else if("wasanderes".equals(wetterstation){
    // tu was anderes
  }
}else{
 
 
 
}

gruß
 
Die vergleich in den IFs sind falsch. Und die IFs lassen sich verkleinern.


Ich habe es mal versucht 😳 zu Berichtigen. Teste es nocheinmal mit den berichtigenten IF Anweisungen.
[Java]
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String datum = request.getParameter("datum");
String wetterstation = request.getParameter("wetterstation");
String error = "OK";

if("Datumwählen".equals(datum)) {
error = "Bitte wählen Sie über die Kalenderfunktion ein Datum aus";
}
if("Wetterstation".equals(wetterstation) || "Wetterstation auswählen".equals(wetterstation)) {
error = "OK".equals(error)
? "Bitte wählen Sie über die Kalenderfunktion ein Datum aus"
: error + "</br> Bitte wählen Sie über die Kalenderfunktion ein Datum aus";
}

if ("OK".equals(error))
{
...
[/Java]

Edit// Eben gesehen das "Wetterstation" und "Wetterstation auswählen" unterschiedliche Error msg haben. Müsstest du noch ändern.
 
Zuletzt bearbeitet:
vielen Dank für die zahlreichen Antworten, der ursprüngliche Fehler lag einfach nur bei der nicht Verwendung von equals (ich hatte es einfach vergessen). Die Verschachtelung ist im Original vorhanden. vielen Dank!!!!
 

Neue Themen


Zurück
Oben