在第一行中,解释为什么“ k”打印“ 1”而不是“ 2”?

时间:2018-12-16 14:19:30

标签: c# loops nested-loops

您可以看到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 :(得分:0)

k的值为1,然后递增。

答案 1 :(得分:0)

K ++是后缀运算符,它将打印k的当前值,然后将k增加1。 如果要在打印前增加k,则应使用++ k之类的前缀运算符,它将先增加k,然后再进行打印

答案 2 :(得分:0)

k ++的意思是“首先执行对k的调用,然后将k加1”。

如果您希望将k打印为2,则需要执行相反的操作: ++ k-“首先将k加1,然后对k进行任何操作”

答案 3 :(得分:0)

一元增量运算符++可以出现在操作数之前(在这种情况下为k)。

在您的示例中,您正在使用postfix increment operator。打印的结果是操作之前的值,然后该值递增。

要更改行为以先增加​​值然后打印,请尝试prefix increment operator

示例:

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