Comment puis-je concevoir une boucle int qui commence par 1 et se termine par 0 (1,2,3,4,5,6,7,8,9,0)

StackOverflow https://stackoverflow.com/questions/4404008

Question

Mon problème est d'utiliser pour les boucles imbriquées pour créer cette sortie:

         |         |         |         |         |         |
123456789012345678901234567890123456789012345678901234567890

Je ne peux pas comprendre la meilleure façon de remplacer le 10 int avec 0. J'ai essayé quelques façons, mais ils sont des gadgets, et ne semble pas juste pour moi. J'espère que mon problème est évident, il est un peu difficile à expliquer. Quelqu'un peut-il me diriger dans la bonne direction?

J'ai atteint la sortie correcte, mais quelque chose me dit qu'il ya une meilleure façon d'aller à ce sujet. Voici mon 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);
}

Great! Modulo est la réponse que je cherchais. Je me sens beaucoup plus à l'aise avec ceci:

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);
   }
}
Était-ce utile?

La solution

Utilisez le modulo opérateur% . Il vous donne le reste. Par conséquent, à partir de la boucle à 1, quand 1 est divisé par 10 le reste est 1 . Lorsque 2 est divisé par 10 le reste est 2 , etc .. Lorsque 10 est divisé par 10 la sortie est 0 .

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

Autres conseils

Vous voulez que l'opérateur mod (de %).

10 % 10 = 0
11 % 10 = 1

Il calcule le reste après la division.

Pourquoi tu ne peux pas générer ceci:

012345678901234567890123456789012345678901234567890123456789

Et puis prendre le caractère de l'avant et le coller sur la fin?

Il y a plusieurs façons. Le plus simple est cela, sans doute:

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

Si vous avez 2 boucles, vous pouvez utiliser ce fait:

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

Si cela représente une type de modèle , puis tout simplement pas définir le modèle et la sortie le résultat à l'écran (ou faire ce que vous voulez), il est:

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();
}
for (int i=1; i<100; i++)
    System.out.println(i%10);

Voici une solution non-modulo:

$x = 1;
while(1){
  if($x>9){
     $x=0;
  }
print $x;
$x++;
}

Oui, oui, je sais que c'est pas cher. Ça va marcher bien. ;)

Vous pouvez essayer d'utiliser modulo:

i = i % 10
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top