Для значения приращения итерации цикла на 1. почему? - PullRequest
0 голосов
/ 29 сентября 2018

почему значение k равно одному приращению, когда оно должно остановиться на 1 на первой итерации и 3 на второй и т. Д.?

public class pattern6 {
    public static void main(String... args) {
        int i, j, k, space = 5;
        for (i = 1; i <= 5; i++) {
            for (j = 0; j < space; j++)
                System.out.print(" ");
            space--;
            for (k = i; k <= 2 * i - 1; k++)
                System.out.print(k);
            System.out.print("k value:" + k); // k value is increament by 1
            if (i > 1)
                for (int temp = k - 2; temp >= i; temp--) {
                    System.out.print(temp);
                }
            System.out.println("");
        }
    }
}

Вывод:

 run:
     1k value:2
    23k value:42
   345k value:643
  4567k value:8654
 56789k value:108765
BUILD SUCCESSFUL (total time: 0 seconds)

Почему kзначение 2,4,6,8 и т. д.?

Ответы [ 2 ]

0 голосов
/ 29 сентября 2018

Цикл останавливается, когда k равно 2, 4, 6, 8 и т. Д., И он не откатывает приращение.

После цикла, k имеет значение, которое заставило цикл остановиться, в противном случае он все еще должензацикливаться.

0 голосов
/ 29 сентября 2018

Я не понимаю ваш вопрос .... я вижу, что результат уже увеличен на 1, как вы ожидаете.Это не 2,4,6,8, как вы упомянули: 1k значение: 2 23k значение: 42 345k значение: 643 4567k значение: 8654 56789k значение: 108765

        for (k = i; k <= 2 * i - 1; k++)
            System.out.print(k);
        System.out.print("k value:" + k); // k value is increament by 1

Если вы хотите, чтобы код напечаталсоответствующее значение одно за другим, вы можете четко заявить, что:

for (k = i; k <= 2 * i - 1; k++){
    System.out.println("temp k value:" + k); // k value is increament by 1
}
System.out.println ("final K value:"+k);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...