Різниця між ++i та i++ (C# Elementary6 Talk in the big kitchen: Introduction to char type)

Доброго дня! В задачі “Make Upper case not war” у рішенні від КодІзі використовується такий луп:
image

Прохання до менторів. Поясніть будь-ласка, чим відрізняються ++i та i++ в данному випадку та взагалі? Мною було використано i++ і результат був той самий.

Для for loop принципової різниці немає, обидва варіанти працюють і вірні. Загалом же різниця у наступному:

  • якщо ++i як суфікс використовується, то спершу змінна збільшується на одиницю, і лише потім її нове значення використовується:
i = 1;
myValue= ++i;
(i is 2, myValue is 2) Спершу i набуло значення на одиницю більше і це значення збережене за i, значення  myValue отримує фінальне значенні і і вони співпадають. 
  • i++ як префікс повертає початкове значення і:
 i = 1;
 myValue = i++;
 (i is 2, myValue is 1) Тут спершу myValue отримує поточне значенні i (1) і лише потім i збільшується на одиницю.

Це легко можна простежити наступним прикладом з виводом у термінал:

            int i = 10;
            Console.WriteLine(i++);  // виведено 10, значення і = 11
            Console.WriteLine(++i); // виведено 12, значення і = 12

            int k = 10;
            Console.WriteLine(++k); // виведено 11, значення і = 11
2 Likes

Дуже дякую за докладне пояснення :star_struck:

Доповнення про for loop:
У for loop ми працюємо лише з i.
Ми не присвоюємо значення i у якусь змінну під час виконяння операцій ++і чи і++.
Якщо ви подиветесь на приклади, то значення i зростатиме на 1 у будь якому випадку, тому валідні обидва варіанти.

1 Like