Input/Output Zählschleife!

So eine kleine Verständnisfrage! Wenn ich beim 2. while-Befehl die Voraussetzung n == 0 weglasse, so werden mir beim Ausführen des Programms zillionen Werte ausgegeben! Ist die Eigenschaft jedoch vorhanden, so ist dies nicht der Fall! Eigentlich hatte ich aber gedacht, dass die while-Funktion durch das False Setzen des boolean aufgehoben wird, was anscheinend nicht der Fall ist!
Wo liegt mein Denkfehler? ._.

Java:
import java.util.*;

class Standartabweichung
{
   public static void main(String[] args)
   {
      Scanner scan = new Scanner(System.in);

      Double n, m, Zahl;
      Double Durchschnitt = 0;
      Double DurchschnittQ = 0;
      boolean Einmalig = true;

      System.out.println("Geben sie die Anzahl der einzugebenden Integer an!");
      n = scan.nextDouble();
      n = (n + 0.0); //Falls ganze Zahl eingegeben wird//
      m = n;

      while (n != 0.0)
      {
         System.out.println("Geben sie die naechste Zahl ein!");
         Zahl = scan.nextDouble();
         Durchschnitt = Durchschnitt + Zahl;    
         DurchschnittQ = Durchschnitt + (Zahl * Zahl);    //DurchschnittQ nimmt Zahl 2x!//
         n = (n - 1);
      }
      while (Einmalig == true && n == 0)
      {
         Durchschnitt = (Durchschnitt / m);
         DurchschnittQ = (DurchschnittQ / m);
         System.out.println("Der normale Durchschnitt betraegt " + Durchschnitt + " sowie der Durchschnitt Q " + DurchschnittQ + "betraegt!");
         Einmalig = false;
      }
   }
}
 

mrbela

Bekanntes Mitglied
hey LuluIndependent!

Erstmal als kleiner Tip: Variablennamen schreibt man in Java per Konvention klein! Klassennamen z.B. groß, wobei man wiederum package-namen klein schreibt usw... ;) Nur zur Info!

Als zweites: "Double" ist auch falsch. Entweder schreibst Du es klein ("double durchschnitt = 0") oder Du schreibst "Double durchschnitt = 0.0". Dann meckert auch der Compiler nicht rum.

Ich habe es ausprobiert und Deinen Fehler nicht bekommen.

Versuche es mal und dann kannst Du Dich bei Bedarf ja nochmal melden!

vlg
 

Pentalon

Bekanntes Mitglied
Hi LuluIndependent

Das kann ich jetzt nicht ganz nachvollziehen.
Sowohl mit als auch ohne n==0 läuft der Programm die angegebene Zahl von Abfragen durch und präsentiert das Ergebnis.
Das einzige was ich korrigiert habe, war die Instanzfeldinitialisierung für Durchschnitt und DurchschnittQ, da habe ich aus 0 0.0 gemacht.

Java:
import java.util.*;

class Standardabweichung
{
   public static void main(String[] args)
   {
      Scanner scan = new Scanner(System.in);
 
      Double n, m, Zahl;
      Double Durchschnitt = 0.0;
      Double DurchschnittQ = 0.0;
      boolean Einmalig = true;
 
      System.out.println("Geben sie die Anzahl der einzugebenden Integer an!");
      n = scan.nextDouble();
      n = (n + 0.0); //Falls ganze Zahl eingegeben wird//
      m = n;
 
      while (n != 0.0)
      {
         System.out.println("Geben sie die naechste Zahl ein!");
         Zahl = scan.nextDouble();
         Durchschnitt = Durchschnitt + Zahl;    
         DurchschnittQ = Durchschnitt + (Zahl * Zahl);    //DurchschnittQ nimmt Zahl 2x!//
         n = (n - 1);
      }
      while (Einmalig == true)
      {
         Durchschnitt = (Durchschnitt / m);
         DurchschnittQ = (DurchschnittQ / m);
         System.out.println("Der normale Durchschnitt betraegt " + Durchschnitt + " sowie der Durchschnitt Q " + DurchschnittQ + "betraegt!");
         Einmalig = false;
      }
   }
}

Pentalon
 

Pentalon

Bekanntes Mitglied
Hmmm, wozu brauchst Du dieses:

Java:
      while (Einmalig == true)
      {
         Durchschnitt = (Durchschnitt / m);
         DurchschnittQ = (DurchschnittQ / m);
         System.out.println("Der normale Durchschnitt betraegt " + Durchschnitt + " sowie der Durchschnitt Q " + DurchschnittQ + "betraegt!");
         Einmalig = false;
      }

Das geht doch auch ohne. Hier wird ja nichts wiederholt.

Oder ist das nur ein Teil des Codes ?

Pentalon
 
H

hüteüberhüte

Gast
LuluIndependent,
was möchteste machen? :D
 
Zuletzt bearbeitet von einem Moderator:
So erstmal danke für die Anteilnahme *-*

Ich hab mich die letzten Tage mal nochmal selber drangesetzt und irgendwo hatte ich wohl einen minimalen Fehler, der das Problem ausgelöst hat ... jedenfalls kommt es jetzt nicht mehr!
Und danke für die Stil-Tipps .... da bin ich tatsächlich immer noch recht wackelig dabei, da momentan der "Erfolg" des Progs an erster Stelle steht *schämt* xD

Problem ist jedenfalls gelöst! Kann geclosed werden :3
 

Ähnliche Java Themen

Neue Themen


Oben