While Schleife ausführen bis Zahl = X

jalako

Mitglied
Hallo, ich wollte gerne, dass eine while Schleife so oft wiederholt wird bis eine Zahl x ist. Ich weiß nicht genau wie ich es erklären soll aber ich zeig es einfach mal:

Java:
while(a<=dezimalZahl/2){
       a = a * 2;
}

Angenommen die "dezimalZahl" ist 118 dann ist a beim Abbruch 64, wenn ich von "dezimalZahl "dann die 64 abziehe bleiben noch 54 übrig, mit dieser aktualisierten Zahl möchte ich, dass er die Schleife nochmal durchgeht, dann kommt 32 raus -> Rest 22. Das soll sich so lange wiederholen bis halt kein Rest mehr übrig ist

Ich weiß also nicht wie ich diese while Schleife so lange laufen lassen kann bis "dezimalZahl" halt = 0 ist, ich habe leider nichts gefunden ob und wie return bei einer while Schleife funktioniert sprich kann auch sein dass es damit geht nur weiß ich nicht wie.
 

Tarrew

Top Contributor
Wenn ich das richtig verstehe, willst du sowas machen:
Java:
        int dezimalZahl = 118;
        int a = 1;
        while (dezimalZahl > 0) {
            while (a <= dezimalZahl / 2) {
                a = a * 2;
            }
            System.out.println(dezimalZahl + " " + a);
            dezimalZahl -= a;
            a = 1;
        }
 

jalako

Mitglied
Ok jetzt habe ich aber eine andere Frage. Das ganze ist ein Binär nach Dezimal bzw. Dezimal nach Binär Rechner. Alles funktioniert wie es soll. Allerdings wollte ich jetzt gerne noch abfragen ob der Benutzer bei Dezimal nach Binär auch nur Zahlen angegeben hat und bei Binär nach Dezimal, ob der Nutzer nur die Zahl 1 oder 0 benutzt hat. Ich habe es mit probiert

Java:
if(String.contains("0")||String.contains("1"))

jedoch ohne Erfolg
 

Tarrew

Top Contributor
Damit überprüfst du auch nur ob der String "0" oder "1" einhält. Also "a10bc" wäre auch gültig.

Entweder du durchläufst deinen String und prüfst mit charAt ob der String anderere Zeichen als 0 oder 1 enthält. Oder du benutzt einen regulären Ausdruck und benutzt String.matches(regex)
 

javastudent25

Bekanntes Mitglied
Wenn ich das richtig verstehe, willst du sowas machen:
Java:
        int dezimalZahl = 118;
        int a = 1;
        while (dezimalZahl > 0) {
            while (a <= dezimalZahl / 2) {
                a = a * 2;
            }
            System.out.println(dezimalZahl + " " + a);
            dezimalZahl -= a;
            a = 1;
        }

Ich möchte hier nicht unnötig reinfunken. Aber dafür hätte ich gedacht gibt es doch die For-Schleife, nicht??
Vielleicht habe ich aber auch was falsch verstanden.
 

Tarrew

Top Contributor
Für welche der beiden Schleifen?
Grundsätzlich lässt sich jede while-Schleife auch als for-Schleife schreiben und umgekehrt genauso.
Man hätte also auch schreiben können:
Java:
        int dezimalZahl = 118;
        int a;
        while (dezimalZahl > 0) {

            for(a=1;a<=dezimalZahl/2; a=a*2);
           
            System.out.println(dezimalZahl + " " + a);
            dezimalZahl -= a;
        }

Oder meinst du was anderes?
 

JuKu

Top Contributor
Oder noch einfacher:
Einfach den String in ein char Array umwandeln und dann mit einer for Schleife durchgehen.

z.B.:
Code:
public boolean isBinary (String srr) {
    char arr1 = str.toCharArray();

    for (char c : arr1) {
        if (c == "0" || c == "1") {
            //other number found
            return false;
        }
    }

    return true;
}
 

JuKu

Top Contributor
Oder noch einfacher:
Einfach den String in ein char Array umwandeln und dann mit einer for Schleife durchgehen.

z.B.:
Code:
public boolean isBinary (String srr) {
    char arr1 = str.toCharArray();

    for (char c : arr1) {
        if (c == "0" || c == "1") {
            //other number found
            return false;
        }
    }

    return true;
}
 

Tarrew

Top Contributor
Ob man den String in ein char-Array umwandelt und dann durchläuft oder direkt mit charAt() durchgeht ist glaub ich von der Komplexität egal ;P

Aber am einfachsten ist es mit einem Regex:
Java:
    public boolean isBinary(String number){
        String regex = "[01]+";
        return number.matches(regex);
    }
 

JuKu

Top Contributor
Ob man den String in ein char-Array umwandelt und dann durchläuft oder direkt mit charAt() durchgeht ist glaub ich von der Komplexität egal ;P

Aber am einfachsten ist es mit einem Regex:
Java:
    public boolean isBinary(String number){
        String regex = "[01]+";
        return number.matches(regex);
    }

Regex ist viel zu Performance lastig für sowas. Die toCharArray Variante ist vermutlich auch schneller als die charAt Variante, da bei charAt erstmal der ganze String aus dem RAM geholt wird, dann der char extrahiert und dann verarbeitet wird, bei toCharArray spart sich die JVM sowas theoretisch, da das Array nur einmal erzeugt werden muss.
 

Tarrew

Top Contributor
Regex ist in der Tat ziemlich teuer, aber die eine Millisekunde spielt in diesem Kontext glaub ich keine Rolle ;)

Bezüglich deines Codes vergleicht man Chars übrigens mit ' ' anstatt mit " ", bei dem Übergabeparameter haste dich wohl verschrieben und das "arr1" ist nicht als Array deklariert. Ansonsten läuft es natürlich.
 

JuKu

Top Contributor
Danke!
Da ich es mit dem Handy geschrieben habe, hat sich da wohl ein Fehler eingeschlichen, es muss natürlich char arr1[] sein.
Ich kann den alten Beitrag leider nicht mehr bearbeiten.
Auch der Editor hier ist definitiv nicht für mobile geeignet.

In Java sollte man chars auch mit "" vergleichen können, aber eig. sollte es wirklich ein '' sein.

Auch das srr muss ein str sein, die Rechtschreibkorrektur hat das irgendwie geändert.
 

javastudent25

Bekanntes Mitglied
Für welche der beiden Schleifen?
Grundsätzlich lässt sich jede while-Schleife auch als for-Schleife schreiben und umgekehrt genauso.
Man hätte also auch schreiben können:
Java:
        int dezimalZahl = 118;
        int a;
        while (dezimalZahl > 0) {

            for(a=1;a<=dezimalZahl/2; a=a*2);
        
            System.out.println(dezimalZahl + " " + a);
            dezimalZahl -= a;
        }

Oder meinst du was anderes?

Natürlich, man kann es sicher auch so machen. Du weisst es sicher auch besser als ich.
Aber ist es denn nicht so als würde ich anfangen zB die fertige toString Methode quasi selber zu programmieren, wenn es doch schon was Fertiges gibt?

Was wäre damit?
Die hört ja auch auf wenn max erreicht ist..
Java:
      boolean t = true;
      int max = 100;
      while (t) {
           for ( int i =0; i<=max; i++){
                ...
           }
           t = false;
      }
 

javastudent25

Bekanntes Mitglied
Er braucht doch eine While Schleife, die dann aufhört, wenn ein bestimmter wert erreicht ist oder nicht? Aber passt schon, ich will den Thread hier nicht zuspammen. ;)
 

Tarrew

Top Contributor
Hier hat jeder das gleiche Recht zu schreiben, also du spammst nicht ;)

Aber mit den for-Schleifen hast du natürlich recht. Man kann das durchaus mit for-Schleifen machen. Nur es geht halt nicht mit einer einzelnen. Mit zwei for-Schleifen ist es tdz etwas kürzer, also keine schlechte Idee.
Java:
        int a;
        for (int dezimalZahl = 118; dezimalZahl > 0; dezimalZahl -= a) {
            for (a = 1; a <= dezimalZahl / 2; a = a * 2);

            System.out.println(dezimalZahl + " " + a);
        }
 

JuKu

Top Contributor
Was wäre damit?
Die hört ja auch auf wenn max erreicht ist..
Java:
      boolean t = true;
      int max = 100;
      while (t) {
           for ( int i =0; i<=max; i++){
                ...
           }
           t = false;
      }

In diesem Fall wird aber t immer auf false gesetzt, nachdem die for Schleife durchlaufen wurde, d.h. man könnte die while Schleife in diesem Fall auch einsparen.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
G while Schleife ausführen solange eine Taste gedrückt ist Allgemeine Java-Themen 14
W While Schleife funktioniert nicht ganz Allgemeine Java-Themen 4
H do-while Schleife funktioniert nicht wie ich es möchte Allgemeine Java-Themen 7
MangoTango Operatoren while-Schleife für Potenz Allgemeine Java-Themen 3
D While-Schleife - if Zweig unterbrechen Allgemeine Java-Themen 1
T String aus While Schleife für ganze Klasse sichtbar machen Allgemeine Java-Themen 5
M While-Schleife schneller, solange die Abbruchbedingung nicht vom Schleifeninneren abhängt Allgemeine Java-Themen 3
N Frage zur while-Schleife Allgemeine Java-Themen 18
S for-Schleife, while-Schleife Problem Allgemeine Java-Themen 6
R while schleife auf 3 durchgänge beschränken Allgemeine Java-Themen 6
V anstatt thread.join() einfach while schleife? Allgemeine Java-Themen 8
S Do-While Schleife bricht nicht ab Allgemeine Java-Themen 3
S Erste Schritte if-Anweisung in for- oder while-schleife umwandeln Allgemeine Java-Themen 3
T Rekursion mit While Schleife kombinieren? Allgemeine Java-Themen 4
J Thread pausieren, lange while-Schleife Allgemeine Java-Themen 8
W While-ESC-Schleife funktioniert nicht Allgemeine Java-Themen 3
H Threads.... ich will aus der While-Schleife raus Allgemeine Java-Themen 6
J Schachbrett mit for- oder while-Schleife Allgemeine Java-Themen 22
V Problem in While-Schleife Allgemeine Java-Themen 3
T getParameter in while schleife Allgemeine Java-Themen 3
O while - Schleife unterbrechen mit break; Allgemeine Java-Themen 5
M Problem mit while/do Schleife Allgemeine Java-Themen 12
B Try/Catch in While-Schleife mit Scanner - Hilfe! Allgemeine Java-Themen 3
F While(true)-Schleife im JPanel Allgemeine Java-Themen 9
N vergleich mit while und for schleife Allgemeine Java-Themen 7
M Keine weitere Eingabe in der Main möglich. Eventueller Ansatz über while. Allgemeine Java-Themen 8
C Schachbrett mit while-schleifen Allgemeine Java-Themen 7
A Swing Taschenrechner while Schlaufe Allgemeine Java-Themen 12
I NullPointer während while(){} Allgemeine Java-Themen 4
D ProcessBuilder und die while() Allgemeine Java-Themen 3
J Konsolen Anwendung mit while(true) Allgemeine Java-Themen 6
N while Schlauf und ActionEvent Allgemeine Java-Themen 2
L Exception auslösen, um while Schlaufe zu verlassen(rxtx.org) Allgemeine Java-Themen 6
B while mit BufferedReader beenden Allgemeine Java-Themen 5
T Verschachtelte For-Schleife gibt falschen Wert zurück, Abbruchbedingung evtl. falsch? Allgemeine Java-Themen 9
A verschachtelte for-Schleife in einen Stream umwandeln? Allgemeine Java-Themen 4
A Wie schreibe ich eine For-Schleife in ein Stream API um? Allgemeine Java-Themen 12
berserkerdq2 Wie synchronisiere ich eine for-Schleife Allgemeine Java-Themen 12
N Warum wird die For Schleife nicht betreten Allgemeine Java-Themen 4
M Schleife für einen TicTacToe Computer Allgemeine Java-Themen 5
Lukas2904 Schleife mit ansteuerung einer Klasse Allgemeine Java-Themen 5
A For-Schleife Allgemeine Java-Themen 5
J Algorithmen Analyse einer Schleife Allgemeine Java-Themen 6
1 Klassen Variabel aus Schleife übergeben Allgemeine Java-Themen 8
D "Automatisierte", variable verschachtele for-Schleife Allgemeine Java-Themen 9
F Schleife funktioniert nicht richtig Allgemeine Java-Themen 13
K For-Schleife <> oder != Operator verwenden? Allgemeine Java-Themen 2
J Einen Thread in einer Schleife Allgemeine Java-Themen 2
F Zweifache For-Schleife Allgemeine Java-Themen 6
P Operatoren Problem mit Zähler in recursiver Schleife Allgemeine Java-Themen 2
S Variablen String[] Array per schleife in int[] einlesen Allgemeine Java-Themen 8
D Methoden Buttons erscheinen doppelt nach Wiederholung in Schleife Allgemeine Java-Themen 1
RalleYTN Problem bei Schleife die durch einen 2D raum iterieren soll Allgemeine Java-Themen 1
T for - Schleife Allgemeine Java-Themen 1
R Komplizierte Schleife Allgemeine Java-Themen 1
Q For-Schleife in String-Value Allgemeine Java-Themen 3
F Abstrakte Klasse in "For each" Schleife Allgemeine Java-Themen 1
F for-Schleife auf Kommandoebene ausgeben Allgemeine Java-Themen 9
P Input/Output java.util.Scanner in einer Schleife und Exception-Behandlung: Einlesen einer Zahl Allgemeine Java-Themen 4
P Erweiterte For Schleife Allgemeine Java-Themen 7
D Arraylist/For Schleife/Scanner Allgemeine Java-Themen 30
Y automatisierte for Schleife Allgemeine Java-Themen 13
B For schleife und weiter? Allgemeine Java-Themen 8
D Probleme bei for-Schleife Allgemeine Java-Themen 4
L einfache Verzinsung mit for-Schleife & Ausschluss von Werten beim Einlesen Allgemeine Java-Themen 5
M for Schleife mit Swing Button abbrechen Allgemeine Java-Themen 7
M PdfPTable per for-Schleife befüllen Allgemeine Java-Themen 3
F for-Schleife mit : Allgemeine Java-Themen 5
S Pattern.Match Suche: For Schleife einbinden und in Liste schreiben Allgemeine Java-Themen 3
W Problem mit Index in einer for-Schleife Allgemeine Java-Themen 8
A Collections Array-Elemente in ArrayList kopieren ohne Schleife Allgemeine Java-Themen 7
P Variablen Auf durch for-Schleife generierte JComboBox zugreifen Allgemeine Java-Themen 3
F Foreach und for - Schleife Allgemeine Java-Themen 10
W Berechnung Durchschnitt mit Schleife Allgemeine Java-Themen 9
H Netbeans Warning bei Thread.sleep in Schleife Allgemeine Java-Themen 4
A java.lang.NullPointerException bei Schleife Allgemeine Java-Themen 3
S Erste Schritte Exception beendet Schleife nicht - Methode macht trotz throw weiter? Allgemeine Java-Themen 9
x22 for-Schleife Allgemeine Java-Themen 76
S Text in for Schleife in Label einfügen Allgemeine Java-Themen 4
J Schleife mit : Allgemeine Java-Themen 18
S Klassen in einer Schleife durchlaufen Allgemeine Java-Themen 11
E Schleife wird nicht ausgeführt!!! Allgemeine Java-Themen 8
C Schleife mit leerem Anweisungsblock wird trotz erfüllter Bedingung nicht verlassen Allgemeine Java-Themen 9
K CheckBox schleife Allgemeine Java-Themen 2
D Methoden Thread Schleife Status Allgemeine Java-Themen 7
J Verschiedene Klassen als "Object" in ArrayList und dann in for-Schleife erzeugen!? Allgemeine Java-Themen 2
R In einer for Schleife bei einem Substring anfangen, wo man davor aufgehört hat Allgemeine Java-Themen 6
D Sterne Muster mit einer Schleife Allgemeine Java-Themen 5
Dragonfire Code Konvention for-Schleife / return Allgemeine Java-Themen 15
hdi Detail-Frage zur for-Schleife Allgemeine Java-Themen 9
Q Variable aus Schleife/Switch benutzen Allgemeine Java-Themen 7
J Erweiterte For-Schleife mit Vector Allgemeine Java-Themen 5
C Geschachtelte For-Schleife: Äußere Schleife wird nur einmal durchlaufen!? Allgemeine Java-Themen 3
W return Collection mit schleife durchsuchen Allgemeine Java-Themen 10
calzone Warum wird nicht aus der Schleife gesprungen ? Allgemeine Java-Themen 2
lacyuu Schleife hängt sich auf, wieso?? Allgemeine Java-Themen 2
ModellbahnerTT Problem: Schleife über Textdatei Allgemeine Java-Themen 5
S Wie gross ist die Laufzeit für diese Schleife?? Allgemeine Java-Themen 8
I For- Schleife falsch? Allgemeine Java-Themen 8
T Schleife kurzzeitig anhalten Allgemeine Java-Themen 5

Ähnliche Java Themen

Neue Themen


Oben