Как создать цикл int, который начинается с 1 и заканчивается 0 (1,2,3,4,5,6,7,8,9,0)
Моя проблема заключается в использовании вложенных циклов для создания этого вывода:
| | | | | |
123456789012345678901234567890123456789012345678901234567890
Я не могу найти лучший способ заменить int 10 на 0. Я пробовал несколько способов, но они бесполезны и не кажутся мне правдой. Надеюсь, моя проблема очевидна, ее трудно объяснить. Может ли кто-нибудь указать мне в правильном направлении?
Я достиг нужного результата, но что-то говорит мне, что есть лучший способ сделать это. Здесь мой код:
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);
}
Отлично! Modulo был ответом, который я искал. Мне гораздо комфортнее:
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);
}
}
Ответы
Ответ 1
Используйте modulo operator%. Это дает вам остаток.
Поэтому, начиная цикл в 1, когда 1 делится на 10, остаток 1.
Когда 2 делится на 10, остаток 2 и т.д. Когда 10 делится на 10, результат 0.
for(int i = 1; i <= 10; i ++) {
System.out.println(i % 10);
}
Ответ 2
Вам нужен оператор mod (%
).
10 % 10 = 0
11 % 10 = 1
Он вычисляет остаток после деления.
Ответ 3
Почему вы не можете просто создать это:
012345678901234567890123456789012345678901234567890123456789
А затем возьмите символ с фронта и вставьте его в конец?
Ответ 4
Есть много способов. Самое простое это, возможно:
for (int i = 1; i <= 10; i++) {
System.out.println(i % 10);
}
Если у вас есть 2 цикла, вы можете использовать этот факт:
for (int i = 0; i < 5; i++) {
for (int j = 1; j <= 9; j++) {
System.out.print(j);
}
System.out.print(0);
}
Ответ 5
Если это представляет тип шаблона, то, не просто определяя шаблон, а затем выводить результат на экран (или делать все, что вы хотите), это:
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();
}
Ответ 6
Вы можете попробовать использовать modulo:
i = i % 10
Ответ 7
for (int i=1; i<100; i++)
System.out.println(i%10);
Ответ 8
Здесь немодульное решение:
$x = 1;
while(1){
if($x>9){
$x=0;
}
print $x;
$x++;
}
Да, я знаю, это дешево. Это будет работать.;)