Назад Зміст Вперед

Урок 1.7. Інкремент та декремент. Операції з присвоєнням

План уроку

1.Синтаксис арифметичних операцій з присвоєнням (class Increment_1).
2.Синтаксис арифметичних операцій інкремента, декремента в префіксній та постфіксній формах. Різниця між префіксною та постфіксною формами (class Increment _2).
3.Особливості арифметичних операцій з присвоєнням, а також операцій інкремента та декремента (class Increment _3).
4.Особливості операції  х = х++; (class Increment _4).


Програми:

public class Increment_1{
public static void main(String args[]) {
// операції з присвоєнням
int x = 17, y = 17;
x = x + 4;y += 4;
System.out.println(x); // виведення результату 21
System.out.println(y); // виведення аналогічного результату
}
}

Операції інкремент і декремент означають збільшення або зменшення значення змінної на одиницю і застосовуються тільки для змінних, а не для констант чи виразів, не можна написати 5++ або (а + b)++.

Цікаво, що ці операції можна записати і перед змінною: ++i, --j. При першій формі запису (постфіксній) у виразі приймає участь старе значення змінної і лише потім відбувається збільшення чи зменшення її значення. При другій формі запису (префіксній) спочатку зміниться змінна і її нове значення буде приймати участь у виразі. 

Наприклад, після приведених вище описань, (k++) + 5 дасть в результаті 10004, а змінна k прийме значення 10000. Але в тій же ситуації (++k) + 5 дасть 10005, а змінна k стане рівною 10000.  

public class Increment_2{
public static void main(String args[]) {
// операції інкремента та декремента
int x = 17, y = 37, z = 45;
int a = x++;
int b = ++y;
int c = --z;
System.out.println(x); // виведення результату 18
System.out.println(y); // виведення результату 38
System.out.println(z); // виведення результату 44
System.out.println(a); // виведення результату 17
System.out.println(b); // виведення результату 38
System.out.println(c); // виведення результату 44
}
}

public class Increment_3{
public static void main(String args[]) {
// особливості операцій з присвоєнням, операцій інкремента та декремента
byte x = 10;
// x = x+2; // не компілюється, результат має тип int
x += 2; // компілюється, тип змінної не змінився
System.out.println(x); // виведення результату 12
short y = 20;
// y = y +1; // не компілюється, результат має тип int
y++; // компілюється, тип змінної не змінився
System.out.println(y); // виведення результату 21
}
}

public class Increment_4{
public static void main(String args[]) {
// особливості операції
x = x++;
int x = 10, y = 20, z = 30, a = 40, b = 50;
x = x+1;y++;++z;
a = ++a;
b = b++; // значення b не зміниться!
System.out.println(x); // виведення результату 11
System.out.println(y); // виведення результату 21
System.out.println(z); // виведення результату 31
System.out.println(a); // виведення результату 41
System.out.println(b); // виведення результату 50
}
}


Література для класної роботи:
[Sangera]: p.37,

Тести для класної роботи:
[task-mughal]: 3.7, 3.8, 3.11, 3.12.    
Quiz

Література для домашньої роботи:
[Шилдт]: с.103, 105…107,
[Вязовик], лек.3: ст.18,
         лек.4: ст.10,
   
Тестові завдання для домашньої роботи:
[Heller], сh.2: 1,12,
    ch.4: 4,          
[Sangera],ch.2:  8,9,11,
            ch.5:  5,        
[Raposa], сh.1: 20,
[Green]: 48,       
[Jaworsky], р.55: 3,
[Вязовик], лек.3: 3-9,3-10.



.