Hallo!
Folgende Aufgabe: In die Konsole soll aufsteigend bis 50 in jede Zeile eine Zahl geschrieben werden. Allerdings soll bei Zahlen die sich durch 3 teilen lassen und dabei eine Ganzzahl ergeben statt der grade aktuellen Zahl ein "foo" geschrieben werden, bei 5 ein "bar" und bei 7 ein "baz".
Beispiel: Bei 6 würde "foo" geschrieben werden, bei 7 "baz" und bei 15 "foo bar".
Erst habe ich versucht das ganze mit Switch zu lösen, habe dann aber eher an 3 If-Schleifen gedacht: In der ersten wird abgefragt ob die aktuelle Zahl / 3 eine Ganzzahl ist. Wenn ja dann "foo" in eine Variable schreiben. In den nächsten schleifen das selbe mit der Ausnahme das das Wort an die Varibale angehängt wird, denn es müssen ja 2 Wörter wie bei 15 geschrieben werden. An ende würde die Variable dann mit "" gelert werden.
So weit so gut. Die While Schleife die ich benutze benutzt die Variable i (integer) und auch wenn ich sie durch 3 teile wird die automatisch gerundet, selbst wenn ich folgende Anweisung verwende:
:/
Eigentlich müsste es doch möglich sein die Zahl zu checken ob diese Ganzzahl ist oder nicht.
Wenn ich jetzt i als float deklariere dann krieg ich trotzdem 5.0 für 15 ( 15/3) raus, also ist mein 2. Lösungsansatz auch unbrauchbar, ich wollte checken ob sich ein Punkt in dem String befindet (Deswegen hab ich den Wert auch in String umgewandelt)
---
Jetzt überlege ich grade ob man nicht feststellen könnte wieviele Zahlen nach dem Punkt kommen, falls 1 Zahl und diese ist eine 0 dann ist es eine Ganzzahl und es wird dann das Wort statt die Zahl geschrieben.
Aber wie?^^
---
mein aktueller code ist grade der hier :/
Folgende Aufgabe: In die Konsole soll aufsteigend bis 50 in jede Zeile eine Zahl geschrieben werden. Allerdings soll bei Zahlen die sich durch 3 teilen lassen und dabei eine Ganzzahl ergeben statt der grade aktuellen Zahl ein "foo" geschrieben werden, bei 5 ein "bar" und bei 7 ein "baz".
Beispiel: Bei 6 würde "foo" geschrieben werden, bei 7 "baz" und bei 15 "foo bar".
Erst habe ich versucht das ganze mit Switch zu lösen, habe dann aber eher an 3 If-Schleifen gedacht: In der ersten wird abgefragt ob die aktuelle Zahl / 3 eine Ganzzahl ist. Wenn ja dann "foo" in eine Variable schreiben. In den nächsten schleifen das selbe mit der Ausnahme das das Wort an die Varibale angehängt wird, denn es müssen ja 2 Wörter wie bei 15 geschrieben werden. An ende würde die Variable dann mit "" gelert werden.
So weit so gut. Die While Schleife die ich benutze benutzt die Variable i (integer) und auch wenn ich sie durch 3 teile wird die automatisch gerundet, selbst wenn ich folgende Anweisung verwende:
Code:
strZahl = "" + i/3;
Eigentlich müsste es doch möglich sein die Zahl zu checken ob diese Ganzzahl ist oder nicht.
Wenn ich jetzt i als float deklariere dann krieg ich trotzdem 5.0 für 15 ( 15/3) raus, also ist mein 2. Lösungsansatz auch unbrauchbar, ich wollte checken ob sich ein Punkt in dem String befindet (Deswegen hab ich den Wert auch in String umgewandelt)
---
Jetzt überlege ich grade ob man nicht feststellen könnte wieviele Zahlen nach dem Punkt kommen, falls 1 Zahl und diese ist eine 0 dann ist es eine Ganzzahl und es wird dann das Wort statt die Zahl geschrieben.
Aber wie?^^
---
mein aktueller code ist grade der hier :/
Code:
public class FooBarBaz {
public static void main (String[] args) {
float i = 0;
String strZahl;
while (i < 50) {
i++;
strZahl = "" + i/3;
int index = strZahl.indexOf(".");
System.out.println(strZahl + " Punkt an Stelle: " + index);
}
}
}
Zuletzt bearbeitet: