Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗ktPmNuPP 45 of 522 menu
◀ ▶

Префикс и постфикс в Kotlin

Давайте теперь посмотрим, что инкремент и декремент можно записать двумя способами. Разберем их на примере ++, для -- все будет так же.

В первом способе операция записывается после имени переменной: num1++. Во втором - перед именем: ++num1.

Первая форма называется постфиксной, а вторая - префиксной. Разница проявляется, когда операция стоит внутри другой.

В записи println(num1++) переменная сначала выводится, а потом увеличивается на единицу. В записи println(++num1) она сначала увеличивается, а потом выводится.

В следующем примере первый println выведет 0, потому что сначала сработает вывод, а уже затем переменная увеличится:

var num1 = 0 println(num1++) // 0 println(num1) // 1

А теперь переменная вначале увеличится, а уже затем будет вывод:

var num1 = 0 println(++num1) // 1

Такое поведение относится не только к выводу, но и к присваиванию:

var num1 = 0 var num2 = num1++ // в переменную num2 запишется 0 println(num2) // 0 println(num1) // 1

А теперь поменяем постфиксную форму на префиксную:

var num1 = 0 var num2 = ++num1 // в переменную num2 запишется 1 println(num2) // 1

Если операция выполняется отдельной командой, разницы между префиксной и постфиксной формами нет:

var num1 = 0 ++num1 num1++ println(num1) // 2

Не запуская код, определите, что выведется на экран:

var num1 = 3 println(++num1)

Не запуская код, определите, что выведется на экран:

var num1 = 3 println(num1++)

Не запуская код, определите, что выведется на экран:

var num1 = 3 println(--num1)

Не запуская код, определите, что выведется на экран:

var num1 = 3 println(num1--)

Не запуская код, определите, что выведется на экран:

var num1 = 3 var num2 = ++num1 println(num1) println(num2)

Не запуская код, определите, что выведется на экран:

var num1 = 3 var num2 = num1++ println(num1) println(num2)

Не запуская код, определите, что выведется на экран:

var num1 = 3 var num2 = --num1 println(num1) println(num2)

Не запуская код, определите, что выведется на экран:

var num1 = 3 var num2 = num1-- println(num1) println(num2)

Не запуская код, определите, что выведется на экран:

var num1 = 3 num1++ var num2 = num1-- println(num1++) println(--num2)
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить