Чи можете ви пояснити мені вихід цього коду Java? int a=5,i; i=++a + ++a + a++; i=a++ + ++a + ++a; a=++a + ++a + a++; System.out.println(a); System.out.println(i); Вихід - 20 в обох випадках
На даний момент я вивчаю C ++ і деякий час тому я дізнався про збільшення. Я знаю, що ви можете використовувати "++ x", щоб зробити приріст до і "x ++", щоб зробити це після. Тим не менше, я справді не знаю, коли використовувати будь-який з цих двох ... Я ніколи …
Очевидно, на моєму ноутбуці Windows 8 із HotSpot JDK 1.7.0_45 (з усіма параметрами компілятора / віртуальної машини, встановленими за замовчуванням), нижченаведений цикл final int n = Integer.MAX_VALUE; int i = 0; while (++i < n) { } принаймні на 2 порядки швидше (~ 10 мс проти ~ 5000 мс), ніж: …
Розглянемо наступний код: int main() { int i = 2; int b = ++i++; return 3; } Він компілюється із наступним помилкою: <source>: In function 'int main()': <source>:3:16: error: lvalue required as increment operand 3 | int b = ++i++; | ^~ Це звучить для мене справедливо. Приріст постфікса має …