0

如您所见,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

4 回答 4

0

一元自增运算符++可以出现在操作数之前或之后(在本例中为k)。

在您的示例中,您使用的是后缀增量运算符。打印的结果是操作前的值,然后该值递增。

要将行为更改为首先递增值然后打印,请尝试使用前缀递增运算符

例子:

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

于 2018-12-16T14:30:04.710 回答
0

k 被评估为 1,然后递增。

于 2018-12-16T14:22:32.230 回答
0

K++是后缀运算符,它会打印出k的当前值,然后将k加1。如果你想在打印之前增加k,你应该使用像++k这样的前缀运算符,它会增加k然后打印它

于 2018-12-16T14:22:35.723 回答
0

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

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

于 2018-12-16T14:22:42.130 回答