2014-09-15 2 views
1
public class Latihan 
{ 
    public static void main(String[] args) 
    { 
     int a = 0; 
     System.out.println(++a + ++a * ++a); 
    } 
} 

Выходной сигнал 7. Что здесь происходит? Пожалуйста, объясните мне. Я все еще новичок в программировании.a = 0; почему (++ a + ++ a * ++ a) = 7?

+2

Как вы думаете, что должно быть и почему? –

+11

, так что вы думаете, что '1 + 2 * 3' не' 7'? – Baby

+0

Итак, это первый шаг? –

ответ

10

Это то, что случилось:

++a + ++a * ++a 
    1 + 2 * 3 
    1 + 6 
    7 

EDIT 2

++a + a++ * ++a 
    1 + 1 * 3 
    1 + 3 
    4 
  • ++a средство увеличения значения aперед использовать его, тем самым предварительно -increment
  • a++ средства используют значение aзатем увеличивать его, таким образом, сообщение -increment

Read more about operator precedence here.

+0

Спасибо.Итак, это первый шаг? Я думал, что это умножение сначала. –

+0

@ThoyibAntarnusa Да, это первый шаг. Я дал ссылку на приоритет оператора в своем ответе. Вы можете проверить это для получения дополнительной информации. :) – lxcky

1

++, средство «увеличить значение а, возвращая новый (увеличивается) значение ". Итак, да, приращение происходит до того, как у вас будет доступное значение для работы.

Если это не то, что вы хотите ...

A ++ означает «увеличить значение а, возвращая предыдущее (ип приращения) значения».

int a=0; 
System.out.println(++a); /* will print 1, and leave a set to 1 */ 
a=0; 
System.out.println(a++); /* will print 0, and leave a set to 1 */ 

Аналогично для операторов «-a» и «a--» (декременты).

Выражения Java не получают довольно как волосатый, как выражение C, поскольку Java не имеет операторов манипуляции с указателями, но все еще достаточно операторов, чтобы иногда вводить в заблуждение приоритет. Это особенно верно, когда речь идет о побочных эффектах, как в этом случае. Когда вы сомневаетесь, или когда вы думаете, что следующий человек, чтобы прочитать код, может быть под вопросом, вы можете вытащить приращение из выражения и выполнить его отдельно.

Смежные вопросы