4 Bit in einer for-schleife funktioniert nicht

stormyark

Mitglied
Hey, ich möchte eine vier Bit Zahl hochzählen lassen und es dann als Binärzahl ausgeben.

Mein Plan war es eigentlich das eine for-Schleife hochzählt und dann abfrägt:

"Ist die angegebene Zahl größer als 8?"
wenn ja
ersteStelle = "1";

"Ist die angegebene Zahl größer als 4?"
wenn ja
zweiteStelle = "1";

So setzten sich also die vier Bit zahlen nach einander zusammen

Das sind die vier Bit Zahlen
[CODE lang="java" title="Bitzahlen"]//0001 - 1
//0010 - 2
//0011 - 3
//0100 - 4
//0101 - 5
//0110 - 6
//0111 - 7
//1000 - 8
//1001 - 9
//1010 - 10
//1011 - 11
//1100 - 12
//1101 - 13
//1110 - 14
//1111 - 15[/CODE]

Wenn ich das mit einer normalen if-Abfrage mache und die Zahl vorher definiere funktioniert alles perfekt

[CODE lang="java" title="if-Abfrage"]vierBit = 12
if (vierBit >= 8) {
ersteStelle = "1";
vierBit = vierBit - vierterBit;
}
if (vierBit >= 4) {
zweiteStelle = "1";
vierBit = vierBit - dritterBit;
}
if (vierBit >= 2) {
dritteStelle = "1";
vierBit = vierBit - zweiterBit;
}
if (vierBit >= 1) {
vierteStelle = "1";
}
}
int teilergebnis = vierBit;
ergebnis = ("Die Bitzahl von "+teilergebnis+" ist: "+ersteStelle + zweiteStelle + dritteStelle + vierteStelle);
System.out.println(ergebnis);[/CODE]

Doch wenn ich den Code in eine for-Schleife packe

[CODE lang="java" title="for-Schleife"]vierBit = 0;
for(int i = 0; i <= 15; i++) {
int teilergebnis = vierBit;
if (vierBit >= 8) {
ersteStelle = "1";
vierBit = vierBit - vierterBit;
}
if (vierBit >= 4) {
zweiteStelle = "1";
vierBit = vierBit - dritterBit;
}
if (vierBit >= 2) {
dritteStelle = "1";
vierBit = vierBit - zweiterBit;
}
if (vierBit >= 1) {
vierteStelle = "1";
}
}
ergebnis = ("Die Bitzahl von "+teilergebnis+" ist: "+ersteStelle + zweiteStelle + dritteStelle + vierteStelle);
System.out.println(ergebnis);[/CODE]

doch dann ist die Ausgabe:

"Die Bitzahl von 15 ist: 0000"

wie löse ich das Problem
 
K

kneitzel

Gast
Mehrere Punkte:

a) Du rechnest in der Schleife mit der Variablen vierbit. Diese ist aber immer 0 und daher nie > als irgend eine Zahl welche >0.

b) Dann musst du evtl. auch schauen: Du rechnest in der Schleife etwas, aber die Ausgabe ist außerhalb der Schleife. Das macht so natürlich wenig Sinn.

c) Du setzt die Ergbnisse auf den Stellenimmer nur auf 1 aber nie zurück. Also werden die Stellen (wenn du den Fehler a behoben hast) alle nach und nach auf 1 gesetzt.

Bei sowas sind meine Ratschläge:
a) Immer erst genau in Worten formulieren, was Du machen willst.
b) Teile und Herrsche! Baue Methoden, die das machen. Du hast Die Unterteilung einer Zahl gebaut und das funktioniert? Dann mach das in eine Methode und in der Schleife rufst Du dann diese Methode einfach wiederholt auf. ==> Code ist einfacher zu überblicken und Fehler wie b) und c) sind deutlich einfacher zu vermeiden und der Code wird auch deutlich besser lesbar.
 

stormyark

Mitglied
Mehrere Punkte:

a) Du rechnest in der Schleife mit der Variablen vierbit. Diese ist aber immer 0 und daher nie > als irgend eine Zahl welche >0.

b) Dann musst du evtl. auch schauen: Du rechnest in der Schleife etwas, aber die Ausgabe ist außerhalb der Schleife. Das macht so natürlich wenig Sinn.

c) Du setzt die Ergbnisse auf den Stellenimmer nur auf 1 aber nie zurück. Also werden die Stellen (wenn du den Fehler a behoben hast) alle nach und nach auf 1 gesetzt.

Bei sowas sind meine Ratschläge:
a) Immer erst genau in Worten formulieren, was Du machen willst.
b) Teile und Herrsche! Baue Methoden, die das machen. Du hast Die Unterteilung einer Zahl gebaut und das funktioniert? Dann mach das in eine Methode und in der Schleife rufst Du dann diese Methode einfach wiederholt auf. ==> Code ist einfacher zu überblicken und Fehler wie b) und c) sind deutlich einfacher zu vermeiden und der Code wird auch deutlich besser lesbar.
Danke für dein Antwort, du hast mir sehr weiter geholfen

Hab jetzt die Lösung meines Problems gefunden

Java:
for (int i = 0; i <= 15; i++) {
      teilergebnis = i;
      vierBit = i;
      if (vierBit >= 8) {
        ersteStelle = "1";
        vierBit = vierBit - vierterBit;
      } else {
        ersteStelle = "0";
      }
      if (vierBit >= 4) {
        zweiteStelle = "1";
        vierBit = vierBit - dritterBit;
      } else {
        zweiteStelle = "0";
      }
      if (vierBit >= 2) {
        dritteStelle = "1";
        vierBit = vierBit - zweiterBit;
      } else {
        dritteStelle = "0";
      }
      if (vierBit >= 1) {
        vierteStelle = "1";
      } else {
        vierteStelle = "0";
      }
      ergebnis = ("Die Bitzahl von "+teilergebnis+" ist: "+ersteStelle + zweiteStelle + dritteStelle + vierteStelle);
      System.out.println(ergebnis);
}
 
K

kneitzel

Gast
Das sieht schon sehr gut aus. Falls Du noch etwas weiter daran arbeiten willst, dann wäre nur noch die Aufteilung in mehrere Methoden ein Punkt, den man sich ansehen könnte / sollte.

Aber die angesprochenen Fehler hast Du korrekt behoben (was ich jetzt so gesehen habe).

Ein Punkt, der aber vermutlich erst später kommen wird: Man kann sich noch überlegen, Werte anders zu speichern, also z.B. in Arrays zu packen und so. Aber ich weiss nicht, was Du Dir bisher so angesehen hast, daher ist es evtl. unklug, dies jetzt schon anzusprechen.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Say Fehlenden Code finden in einer while-Schleife? Java Basics - Anfänger-Themen 11
S Textausgabe in einer For-Schleife Java Basics - Anfänger-Themen 12
LFB In einer For-Schleife alles in einer Zeile ausgeben Java Basics - Anfänger-Themen 14
M Variable in einer Schleife initialisieren Java Basics - Anfänger-Themen 46
D EinMalEins mithilfe einer for-Schleife und Array Java Basics - Anfänger-Themen 1
D Hilfe bei einer Aufgabe mit for-Schleife Java Basics - Anfänger-Themen 6
M ArrayList mit einer Schleife befüllen Java Basics - Anfänger-Themen 2
J if-Schleife innerhalb einer if-Schleife wird in der Konsole nicht gelesen Java Basics - Anfänger-Themen 4
Poppigescorn Quersumme Berechnen mit einer While Schleife Java Basics - Anfänger-Themen 13
M Wie kann ich Werte die in einer While Schleife sind weiter genutzt werden? Java Basics - Anfänger-Themen 7
U Problem mit dem initialisieren meines Strings in einer Schleife Java Basics - Anfänger-Themen 5
Khaled-Abo Ziffern unterscheiden mittels einer For-Schleife Java Basics - Anfänger-Themen 6
T Bestimmte Zahlen ausgeben mit einer whilfe Schleife Java Basics - Anfänger-Themen 21
A eine neue normale String-Array von einer String-Array, die in for schleife ist, schaffen Java Basics - Anfänger-Themen 3
DorFey Schrittweises abändern des GUI während for-Schleife / pausieren einer for-Schleife Java Basics - Anfänger-Themen 3
KogoroMori21 Mit einer Schleife eine Treppe zeichnen Java Basics - Anfänger-Themen 29
S Variablen Variablen in einer Schleife erstellen lassen Java Basics - Anfänger-Themen 11
T Ausgabe einer for Schleife Java Basics - Anfänger-Themen 2
M Ist es möglich, das größte und zweitgrößte element in einem Array mit nur einer Schleife ausfindig zu machen ? Java Basics - Anfänger-Themen 19
B Berechnung zu einer Schleife formen Java Basics - Anfänger-Themen 6
F Abbruchbedingung einer For-Schleife Java Basics - Anfänger-Themen 5
O Wert in einer Schleife unterschiedlich erhöhen Java Basics - Anfänger-Themen 2
X Wie Rechnet man in einer For-Schleife *? Java Basics - Anfänger-Themen 3
Z Boolean Abfrage in einer for each Schleife Java Basics - Anfänger-Themen 2
M Objekte mit einer Schleife mehrmals erzeugen Java Basics - Anfänger-Themen 17
J 2 "while"-Anweisungen in einer do-Schleife? Java Basics - Anfänger-Themen 4
S Try-Catch in Verwendung einer while Schleife Java Basics - Anfänger-Themen 2
P a cannot be resolved bei einer do while Schleife Java Basics - Anfänger-Themen 1
S Warum kann ich nicht mehr als eine Variable in einer for Schleife deklarieren ? Java Basics - Anfänger-Themen 1
S Wie verwende ich ne aus einer Schleife nach der Schleife? Java Basics - Anfänger-Themen 9
V Erste Schritte Array.length[x] in einer Schleife - ich verstehe das nicht Java Basics - Anfänger-Themen 1
C Compiler-Fehler Wird eine if Bedingung nach einer for-Schleife nach jeder Iteration überprüft? Java Basics - Anfänger-Themen 1
T Objekt-Arrays mit einer Schleife durchlaufen/ausgeben Java Basics - Anfänger-Themen 2
V for-Schleife in einer void Methode Java Basics - Anfänger-Themen 3
MiMa abbruch innerhalb einer Rekursiven Schleife Java Basics - Anfänger-Themen 5
H Variablen einer Schleife zwischenspeichern Java Basics - Anfänger-Themen 2
E Alphabet mit einer while Schleife ausgeben Java Basics - Anfänger-Themen 3
B Wiederholen einer if/switch-case Schleife Java Basics - Anfänger-Themen 9
L Anonyme Methode in einer ForEach-Schleife Java Basics - Anfänger-Themen 2
S int-Array mittels Arrays.sort() in einer Schleife sortieren. Java Basics - Anfänger-Themen 2
P ergebnis einer schleife wiedergeben Java Basics - Anfänger-Themen 8
L Frage zum Doppelpunkt in einer for Schleife Java Basics - Anfänger-Themen 4
G Frage zu einer For- Schleife Java Basics - Anfänger-Themen 3
J Vereinfachen einer Schleife Java Basics - Anfänger-Themen 2
A Variablen aus einer Schleife gezielt auslesen Java Basics - Anfänger-Themen 11
M SQL in einer Schleife Java Basics - Anfänger-Themen 7
B OOP Objekte erzeugen mit Hilfe einer for Schleife Java Basics - Anfänger-Themen 29
P Schleife zur Berechnung von einer Summe Java Basics - Anfänger-Themen 16
J Prüfung einer Schleife mit Eingabefeldern Java Basics - Anfänger-Themen 3
J Methoden Wert im Block einer for-Schleife wird nicht aktualisiert Java Basics - Anfänger-Themen 9
S Unbeschaeftigten Thread in einer Schleife schlafen legen? Schlechter Stil? Java Basics - Anfänger-Themen 7
L Next()-Aufruf zweimal innerhalb einer While-Schleife bei ListIterator Java Basics - Anfänger-Themen 10
I Mehrere ArrayLists mit einer for( : ) Schleife auf Inhalt prüfen Java Basics - Anfänger-Themen 6
B if-else in einer schleife Java Basics - Anfänger-Themen 14
C Methoden Objekte mit Hilfe einer Schleife in einer ArrayList erzeugen Java Basics - Anfänger-Themen 26
M BufferdReader in einer Schleife ... Java Basics - Anfänger-Themen 14
D Summe von Eingaben in einer for Schleife Java Basics - Anfänger-Themen 4
N Nächste Frage aufrufen in einer Schleife Java Basics - Anfänger-Themen 8
K Unterschied zwischen break und continue in einer Schleife Java Basics - Anfänger-Themen 14
O Transponieren einer Matrix per While-Schleife Java Basics - Anfänger-Themen 3
J Einem String-Array in einer for-Schleife Strings zuweisen - Klappt nicht in einer for-Schleife Java Basics - Anfänger-Themen 5
V ActionListener in einer for-Schleife Java Basics - Anfänger-Themen 2
X Variablen Variablen erzeugen in einer Schleife? Java Basics - Anfänger-Themen 6
B Wert einer while-Schleife nach Abarbeitung Java Basics - Anfänger-Themen 2
Killerjo96 Erste Schritte Problem mit dem Sichern einer If Schleife Java Basics - Anfänger-Themen 5
C Befehl zum Verlassen einer Schleife Java Basics - Anfänger-Themen 27
O Ungleiche Objekte in einer Schleife erstellen Java Basics - Anfänger-Themen 3
T OOP Objekte einer Klasse mit schleife auslesen Java Basics - Anfänger-Themen 7
V Problem mit einer While Schleife Java Basics - Anfänger-Themen 8
L Datei verschieben mit einer Schleife Java Basics - Anfänger-Themen 17
J In einer for Schleife zu einer Zahl 4 addieren? Java Basics - Anfänger-Themen 3
F Problem mit einer Schleife Java Basics - Anfänger-Themen 10
G Keylistener in einer Schleife Java Basics - Anfänger-Themen 9
O Methode - Problem mit Subtraktion in einer while-Schleife Java Basics - Anfänger-Themen 2
Dit_ Daten vom Server in einer Schleife Java Basics - Anfänger-Themen 4
M Oder in einer While-Schleife Java Basics - Anfänger-Themen 7
S while schleife in einer Methode Java Basics - Anfänger-Themen 11
M Effizienter Variablen außerhalb einer Schleife zu deklarieren? Java Basics - Anfänger-Themen 1
C Variable Zeichenkette innerhalb einer Schleife ersetzen Java Basics - Anfänger-Themen 4
A [gelöst]Objekte in einer Schleife erzeugen Java Basics - Anfänger-Themen 9
B Formatieren des Resultates einer for-Schleife Java Basics - Anfänger-Themen 2
A next in einer Schleife Java Basics - Anfänger-Themen 2
C Verwendung von Matrizen in einer Schleife Java Basics - Anfänger-Themen 5
M warten in einer while-schleife Java Basics - Anfänger-Themen 12
G Zahlen addieren in einer Schleife Java Basics - Anfänger-Themen 4
X Zuweisungsproblem bei einer Schleife Java Basics - Anfänger-Themen 4
M if Abfrage innerhalb einer for-Schleife Java Basics - Anfänger-Themen 2
M if Abfrage innerhalb einer for-Schleife Java Basics - Anfänger-Themen 3
Antoras Zahlen mischen und mit einer for-Schleife Summe berechnen Java Basics - Anfänger-Themen 12
G Alle Buttons in einer For Schleife ändern Java Basics - Anfänger-Themen 5
M Abbruch einer for Schleife Java Basics - Anfänger-Themen 3
D Probleme bei einer for Schleife Java Basics - Anfänger-Themen 20
M Variablenname mithilfe einer schleife erstellen? Java Basics - Anfänger-Themen 2
G wurzel durch probieren in einer schleife bekommen Java Basics - Anfänger-Themen 5
S Ergebnisse einer while Schleife zusammenfassen Java Basics - Anfänger-Themen 4
H Banner anklicken in einer schleife Java Basics - Anfänger-Themen 7
T Durchlauf einer for-Schleife unterbrechen - wie ? Java Basics - Anfänger-Themen 11
NightmareVirus 2 Abbruch Bedingungen in einer for-schleife Java Basics - Anfänger-Themen 2
S Probleme mit einer for-Schleife Java Basics - Anfänger-Themen 3
J Objekte in einer for schleife referenzieren Java Basics - Anfänger-Themen 7

Ähnliche Java Themen

Neue Themen


Oben