Cyperfriend
Der ohne Avatar
- Registriert
- 14 Juli 2013
- Beiträge
- 1.123
Ich mache gerade eine Übung aus einem Buch. Von der Sache her habe ich das Schleifenprinzip ja schon kapiert, aber bei der praktischen Anwendung bin ich auf ein Problem gestoßen und ich kapiere nicht, warum Lösung 1 (aus dem Buch) funktioniert und Lösung 2 (meine Lösung) nicht.
Lösung 1:
[src=csharp]
private void cmdAnzeigen_Click(object sender, EventArgs e)
{
double d = Convert.ToDouble(txtEingabe.Text);
lblAnzeigen.Text = "";
while(d >= 0.001)
{
d = d / 2;
lblAnzeigen.Text += d + "\n";
}
}[/src]
Lösung 2:
[src=csharp] private void cmdAnzeigen_Click(object sender, EventArgs e)
{
double d = Convert.ToDouble(txtEingabe.Text), summe = 0;
lblAnzeigen.Text = "";
while(summe >= 0.001)
{
summe = d / 2;
lblAnzeigen.Text += summe + "\n";
}
}[/src]
Irritierend finde ich auch, dass ich bei der summe bei der Deklarierung erstmal einen Wert zuweisen muss und ein einfaches double = summe nicht ausreicht. Unterm Strich müsste das aber egal sein, weil 0 ist immernoch größer als 0.001 und wenn die Schleife das erste mal durchlaufen wird, wird die Variable summe ohnehin überschrieben.
Kann mir jemand helfen?
Lösung 1:
[src=csharp]
private void cmdAnzeigen_Click(object sender, EventArgs e)
{
double d = Convert.ToDouble(txtEingabe.Text);
lblAnzeigen.Text = "";
while(d >= 0.001)
{
d = d / 2;
lblAnzeigen.Text += d + "\n";
}
}[/src]
Lösung 2:
[src=csharp] private void cmdAnzeigen_Click(object sender, EventArgs e)
{
double d = Convert.ToDouble(txtEingabe.Text), summe = 0;
lblAnzeigen.Text = "";
while(summe >= 0.001)
{
summe = d / 2;
lblAnzeigen.Text += summe + "\n";
}
}[/src]
Irritierend finde ich auch, dass ich bei der summe bei der Deklarierung erstmal einen Wert zuweisen muss und ein einfaches double = summe nicht ausreicht. Unterm Strich müsste das aber egal sein, weil 0 ist immernoch größer als 0.001 und wenn die Schleife das erste mal durchlaufen wird, wird die Variable summe ohnehin überschrieben.
Kann mir jemand helfen?
Zuletzt bearbeitet: