for-loop

Bitte aktiviere JavaScript!
Hallo zusammen
Ich kann leider den Output nicht ganz nachvollziehen. Input ist 4 und Output ist 0011. Könnt ihr mir helfen? Vielen Dank für eure Hilfe!!

Java:
public class Func 
{
    private int n;

    public Func()
    {
        n = 0;
    }
        public void func( int n )
        {
        String toPrint = "" ;
            for( int i = 0; i < 4; i++ ){
                toPrint = (n % 3) + toPrint ;
                n = n / 3 ;
        }
        System.out.println( toPrint ) ;
        }

}
 
Zuletzt bearbeitet von einem Moderator:
A

Anzeige


Vielleicht hilft dir dieser Kurs hier weiter: (hier klicken)
Code:
public class Func  
{
    private int n;

    public Func()
    {
        n = 0;
    }
        public void func( int n )
        {
        String toPrint = "" ;
            for( int i = 0; i < 4; i++ ){
                toPrint = (n % 3) + toPrint ; 
                n = n / 3 ;
        }
        System.out.println( toPrint ) ;
        }

}
kann man besser lesen.
 
Sorry Leute. War mein erster Beitrag. Ich konnte nun mit dem Debugger so zu der Lösung 0011 kommen. Falls es unten zu Umständlich ist - bitte melden:
  • 4 Durchgänge gemäss for Schleife
  • Erster Durchgang: 4 Modulo 3 = 1 -> in toPrint
    • 4/3 -> 3 passt einmal in 4 -> neuer n Wert (Input) = 1
  • Zweiter Durchgang: 1 Modulo 3 = 1 -> in to Print
    • 1/3 -> 3 passt nicht mehr rein -> neuer n Wert = 0
  • Dritter Durchgang: 0 Modulo 3 = 0
    • 0/3 -> 3 passt nicht mehr rein -> neuer n Wert = 0
  • Vierter Durchgang: 0 Modulo 3 = 0
 
Wenn man die Methode, func, auch vernünftig benennt, wird deren Ablauf auch klar:
Java:
public class CN {
public static void main(String[] args) {
    CN cn = new CN();
    for (int i = 0; i <= 9; i++) {
        System.out.println(i + " " + cn.fromBase10ToBase3(i));
    }
}

String fromBase10ToBase3(int n) {
    return String.format("%1$4s", Integer.toString(n, 3)).replace(' ', '0');
}
}

Gibt:
Code:
0 0000
1 0001
2 0002
3 0010
4 0011
5 0012
6 0020
7 0021
8 0022
9 0100

Das replace ist etwas unschön es lässt sich aber nicht vermeiden. ;)
 
Wenn man die Methode, func, auch vernünftig benennt, wird deren Ablauf auch klar:
Diese Antwort wäre korrekt, wenn der TE diese Funktion mit einem klaren Ziel selbst geschrieben hätte. Vermutlich ist es allerdings nicht so.

Ich finde es nicht zielführend, einem offensichtlichen Anfänger/in, Code vor die Nase zu setzen, den er/sie nur schwer verstehen kann. Sinnvolle Antworten sollten zumindest ungefähr auf dem selben Level bleiben.

Das wollte ich nur mal geschrieben haben, weil es mir hier schon öfter aufgefallen ist...
 
Passende Stellenanzeigen aus deiner Region:

Neue Themen

Oben