как вы можете видеть, 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**
Унарный оператор приращения ++ может появляться до или после операнда (в данном случае k).
++
k
В вашем примере вы используете постфиксный оператор приращения ,В результате выводится значение перед операцией, а затем значение увеличивается.
Чтобы изменить поведение, чтобы сначала увеличить значение, а затем выполнить печать, попробуйте оператор приращения с префиксом .
Пример:
Console.Write(++k + " ");
K ++ - постфиксный оператор, он напечатает текущее значение k, а затем увеличит k на 1. Если вы хотите увеличить k, прежде чем печатать его, вы должны использовать префиксный оператор, такой как ++ k, он увеличит k, а затем напечатает его
k ++ означает «сначала делай то, что вызывается на k, затем увеличивай k на единицу».
Если вы хотите напечатать k как 2, вам нужно сделать наоборот: ++ k - «сначала увеличить k на единицу, а затем делать то, что вызывается для k»
k оценивается как 1, затем увеличивается.