В этой первой строке объясните, почему «k» печатает «1» вместо «2»? - PullRequest
0 голосов
/ 16 декабря 2018

как вы можете видеть, k изначально равно 1, я печатаю k ++ в консоли, мой первый вывод - 1 вместо 2! В чем причина этого ??

        var numberOfRows = 4; 
        var k = 1;
        for (int i = 1; i <=numberOfRows; i++)
        {
            for (int j = 1; j <= i; j++)
            {
                Console.Write(k+++" ");

            }
            Console.WriteLine();
        }
**Output :
    1
    2 3
    4 5 6
    7 8 9 10**

Ответы [ 4 ]

0 голосов
/ 16 декабря 2018

Унарный оператор приращения ++ может появляться до или после операнда (в данном случае k).

В вашем примере вы используете постфиксный оператор приращения ,В результате выводится значение перед операцией, а затем значение увеличивается.

Чтобы изменить поведение, чтобы сначала увеличить значение, а затем выполнить печать, попробуйте оператор приращения с префиксом .

Пример:

Console.Write(++k + " ");

0 голосов
/ 16 декабря 2018

K ++ - постфиксный оператор, он напечатает текущее значение k, а затем увеличит k на 1. Если вы хотите увеличить k, прежде чем печатать его, вы должны использовать префиксный оператор, такой как ++ k, он увеличит k, а затем напечатает его

0 голосов
/ 16 декабря 2018

k ++ означает «сначала делай то, что вызывается на k, затем увеличивай k на единицу».

Если вы хотите напечатать k как 2, вам нужно сделать наоборот: ++ k - «сначала увеличить k на единицу, а затем делать то, что вызывается для k»

0 голосов
/ 16 декабря 2018

k оценивается как 1, затем увеличивается.

...