Доброго дня! В задачі “Make Upper case not war” у рішенні від КодІзі використовується такий луп:
Прохання до менторів. Поясніть будь-ласка, чим відрізняються ++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
Дуже дякую за докладне пояснення
Доповнення про for loop
:
У for loop
ми працюємо лише з i
.
Ми не присвоюємо значення i
у якусь змінну під час виконяння операцій ++і
чи і++
.
Якщо ви подиветесь на приклади, то значення i
зростатиме на 1 у будь якому випадку, тому валідні обидва варіанти.
1 Like