В вашем примере второй из ваших внутренних циклов ничего не делает, он никогда не запускается, только первый выводит результат.Я думаю, что ваша идея была близка к тому, чтобы иметь четыре цикла, вложенных два на два.Это бы сработало, но вам нужны только два вложенных цикла, которые используются умно.
public static void main(String[] args){
int lines = 3;
int times = lines * 2;
int x = 2;
String output = "";
for(int i = 1; i < times; i++) {
for (int k = 1; k <= Math.min(times-i, i); k++) {
output = output + x;
}
//Update the index
if (i < times/2) {
x++;
} else {
x--;
}
output += "\n";
}
System.out.println(output);
}
Хитрость в том, как использовать индекс второго цикла: Math.min(times-i, i)
.
РЕДАКТИРОВАТЬ:После вашего редактирования, похоже, что вы хотите, чтобы числа «вращались» (то есть ... 8,9,0,1 ...).Для этого вы можете сделать во внутреннем цикле:
String xS = String.valueOf(x);
output += xS.charAt(xS.length()-1);
Другой вариант (вне внутреннего цикла):
//Update the index
if (i <= (times/2) - 1) {
x++;
} else {
x--;
}
x = x%10; //the rest of dividing x by 10
output += "\n";
}