if else Bedingung

jmh

Grünschnabel
Hallo ich habe folgendes Problem,

wie ihr im folgenden Programtext sehen könnt benutze ich mehre if Bedingungen sowie eine while Anweisung. Diese funktioniern auch wunderbar.
Jedoch soll das Programm sobald es einen Wert in der ArrrayList größer gleich eins erreicht alle dann folgenden Werte gleich eins setzen.
Dies funktioniert jedoch nicht, ich glaube das dass etwas mit dem Ergebnis zutun hat. Da Java als Ergebnis NaN „not a number“ ausgibt.
Ich habe bereits gesucht aber leider keine Erklärungen für mein Problem gefunden, da ich ja mit der if Bedingung keine NaN Ergebnisse erhalten dürfte.
Vom Ergebnis macht es keinen Unterschied ob die Schleife ein oder auskommentiert ist.

Code:
if (choice1.getSelectedIndex()>=3) {
			double n2 = Double.parseDouble(jTextFieldn21.getText());
			while (durchlaufnummer<=DimesionMyArrayList1-1) {
				if (ArrayListCure1.get(durchlaufnummer-1)>=1) {				//Um diese if-else Anweisung handelt es sich
					if (jLabelDif1.getText().equals("Dif An")) {
						dif = (2/(1+Math.exp((ArrayListCure1.get(durchlaufnummer-1)-cureMax)/b)))-1;
					} else {
						dif =1;
					}
					double temp = myArrayListTemp1.get(durchlaufnummer)+273.15; // in Kelvin
					double term1 = ...;
					double term2 = ...;
					term2 = ..;
					dcdt=(term1+term2)*dif ;
					ArrayListCure1.add(durchlaufnummer,(ArrayListCure1.get(durchlaufnummer-1)+
							dcdt*(myArrayListTime1.get(durchlaufnummer)-
									myArrayListTime1.get(durchlaufnummer-1))));
				} else {						//Um diese if-else Anweisung handelt es sich
					ArrayListCure1.add(durchlaufnummer, 1.0);
				}
				durchlaufnummer++;
			}	
		}

Auszug aus dem Ergebnisfile
16950 121.62 0.9981232405784981
16960 121.61 0.9985824186498932
16970 121.62 0.9989932707533176
16980 121.61 0.9993516107755691
16990 121.61 0.9996522706925203
17000 121.61 0.9998867015062455
17010 121.61 1.0000364442456746
17020 121.62 NaN
17030 121.61 NaN


Vielen Dank für eure Hilfe…
 
Bisschen schwierig zu erraten, welche Zahlen Du da auf der Konsole ausgibst...
Zudem: Beim Debuggen ist es immer hilfreich, soviel Code wie möglich zu entfernen ohne dabei das Problem zu entfernen. Wenn du dann nämlich nur noch ganz wenig Code hast, springt dir der Fehler möglicherweise ins Auge, auf alle Fälle aber ist er leichter zu finden. Und irgendwie sieht dein Code so aus, als ob man da noch ziemlich viel unnötiges entfernen könnte …
 
  • Gefällt mir
Reaktionen: jmh
Danke,

bin gerade selber auf den Fehler gestoßen. Der Fehler hat sich der choice1.getSelectedIndex() Anweisung versteckt, da ich mit der Nummerierung durcheinandergekommen bin.
 
Zurück