//Folgender Quellcode
//Nun meine Frage. Warum erfolgt folgende Ausgabe?
//AUSGABE:
1 ist ungerade
3 ist ungerade
5 ist ungerade
7 ist ungerade
9 ist ungerade
Abbruch durch break
//Also wenn die Zahl immer erhöht wird (zahl++) sind die Werte nach Berechnung 0. Diese sind jedoch bei der if Abfrage (rest == 1) bei 0 NICHT GLEICH 1. Trotzdem erfolgt die Ausgabe 1 ist ungerade. Normalerweise würde ein rest if (0 == 1) FALSE sein also ein abbruch stattfinden oder nicht?!
Bsp: Behalten wir den Wert 1 bei Zahl geschieht folgendes:
div = 1 / 2;
rest = 1 - 0.5 * 2; //Punkt vor Strich
if (0 == 1) //würde zum Abbruch führen... oder nicht? Also keine Ausgabe 1 uist ungerade.
Bitte um hilfe verstehe das mal gar nicht!
Code:
public class BreakLoop
{
public static void main(String[] args)
{
int zahl = 1;
int rest, div;
Abbruch:
do
{
div = zahl/2;
rest = zahl - div * 2;
if (rest == 1)
System.out.println (zahl + " ist ungerade");
zahl++;
if (zahl == 10)
{
System.out.println("Abbruch durch break");
break Abbruch;
}
}
while (zahl <= 20);
}
}
//AUSGABE:
1 ist ungerade
3 ist ungerade
5 ist ungerade
7 ist ungerade
9 ist ungerade
Abbruch durch break
//Also wenn die Zahl immer erhöht wird (zahl++) sind die Werte nach Berechnung 0. Diese sind jedoch bei der if Abfrage (rest == 1) bei 0 NICHT GLEICH 1. Trotzdem erfolgt die Ausgabe 1 ist ungerade. Normalerweise würde ein rest if (0 == 1) FALSE sein also ein abbruch stattfinden oder nicht?!
Bsp: Behalten wir den Wert 1 bei Zahl geschieht folgendes:
div = 1 / 2;
rest = 1 - 0.5 * 2; //Punkt vor Strich
if (0 == 1) //würde zum Abbruch führen... oder nicht? Also keine Ausgabe 1 uist ungerade.
Bitte um hilfe verstehe das mal gar nicht!