11 Stimmen

Wie kann ich eine int-Schleife entwerfen, die mit 1 beginnt und mit 0 endet (1,2,3,4,5,6,7,8,9,0)

Mein Problem besteht darin, verschachtelte for-Schleifen zu verwenden, um diese Ausgabe zu erzeugen:

         |         |         |         |         |         |
123456789012345678901234567890123456789012345678901234567890

Ich kann nicht herausfinden, wie man am besten die int 10 durch 0 ersetzt. Ich habe ein paar Möglichkeiten ausprobiert, aber sie sind unpraktisch und erscheinen mir nicht richtig. Ich hoffe, mein Problem ist klar, es ist schwer zu erklären. Kann mir jemand die richtige Richtung zeigen?

Ich habe das richtige Ergebnis erzielt, aber irgendetwas sagt mir, dass es einen besseren Weg gibt, dies zu erreichen. Hier ist mein Code:

int k = 0;  
for (int i=1; i<=6; i++){
   System.out.print("         |");
}
System.out.println();
for (int m=0; m<6; m++){
   for (int j=1; j<10; j++){
      System.out.print(j);
   }
   System.out.print(k);
}

Großartig! Modulo war die Antwort, nach der ich gesucht habe. Ich fühle mich jetzt viel wohler damit:

for (int i=1;i<=6;i++){
   System.out.print("         |");
}
System.out.println();
for (int m=0;m<6;m++){
   for (int j=1;j<=10;j++){
      System.out.print(j % 10);
   }
}

11voto

Adam Punkte 41698

Verwenden Sie die Modulo-Operator % . Sie gibt Ihnen den Restbetrag. Wenn die Schleife also bei 1 beginnt und 1 durch 10 geteilt wird, ist der Rest 1 . Wenn 2 durch 10 geteilt wird, ist der Rest 2 , usw.. Wenn 10 durch 10 geteilt wird, ist die Ausgabe 0 .

for(int i = 1; i <= 10; i ++) {
      System.out.println(i % 10);
}

10voto

Noon Silk Punkte 52750

Sie wollen den Mod-Operator ( % ).

10 % 10 = 0
11 % 10 = 1

Sie berechnet den Restbetrag nach der Division.

8voto

Anon. Punkte 55933

Warum können Sie das nicht einfach generieren?

012345678901234567890123456789012345678901234567890123456789

Und dann die Figur von der Vorderseite abnehmen und an das Ende kleben?

3voto

Roman Punkte 61632

Es gibt viele Möglichkeiten. Der einfachste ist wahrscheinlich dieser:

for (int i = 1; i <= 10; i++) {
   System.out.println(i % 10);
}

Wenn Sie 2 Schleifen haben, dann können Sie diese Tatsache nutzen:

for (int i = 0; i < 5; i++) {
   for (int j = 1; j <= 9; j++) {
       System.out.print(j);
   }
   System.out.print(0);
}

2voto

ArBR Punkte 3942

Wenn dies eine Art von Muster dann zwar nicht einfach das Muster definieren und dann das Ergebnis auf dem Bildschirm ausgeben (oder tun, was immer Sie wollen), aber es ist so:

printPattern("         |", 6);
printPattern("1234567890", 6);

public void printPattern(string pattern, int max)
{   
    int i = 0; 
    while (++i <= max)
        System.out.print(pattern);
    System.out.println();
}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X