2013-06-01 4 views
-2

я следующий код:Как работает System.out.println?

Integer b = 4;  
System.out.println(b+++10); 

Почему System.out.println оценить это выражение? Если вы посмотрите на исходный код Java, вы не найдете код, который оценивает это выражение.

Также, почему b+++ работает? Я думал, что после переменной может быть только два +.

Заранее спасибо.

+9

Вы понимаете, что 'System.out.println (b +++ 10);' такое же, как 'System.out.println (b ++ + 10);'? – Pshemo

+2

На самом деле это не println, который оценивает его - если вы назначили его переменной и напечатали, что получите тот же результат. (И это определенно ответили ранее, но я не могу получить поиск по сайту для «+++» для работы.) – Rup

+0

Вы также понимаете, что оценка выражения не имеет ничего общего с использованием System.out.println ? Java 7 без контекста, и выражение всегда оценивается одинаково независимо от того, как оно используется. –

ответ

4

Если поместить код в Netbeans, и отформатировать его (Alt-Shift-F), вы увидите следующее:

Integer b = 4; 
    System.out.println(b++ + 10); 

Таким образом, результат 4 + 10 который 14. Значение b составляет 5 после команда.

+0

Не совсем понятно, что результат 15.b был увеличен. – BenMansourNizar

+0

Иными словами, почему Integer b = 4; \t \t System.out.println (b ++); дает 4 четных значения b. – BenMansourNizar

+0

@BenMansourNizar Это потому, что вы используете [постфиксный оператор] (http://docs.oracle.com/javase/tutorial/java/nutsandbolts/operators.html). С помощью 'b ++' значение сначала используется, а затем увеличивается. Если вы используете '++ b', значение будет увеличено до использования. – user000001

-1

Процитирует @Rup здесь ваш первый вопрос:

Это на самом деле не println, что это его оценка - если вы назначили его в переменный и распечатаны, что вы получите тот же результат.

Чтобы добавить на том, что это Java, который оценки этого выражения. Если вы поместите это в любую другую функцию, это сработает. Это часть Java - это называется «вложенными выражениями».

Для ответа другого вопроса см @ user000001, и там была дискуссия в комментариях, которые добавили на что (я редактировал его, чтобы сделать его более ясным):

Это не ясно, все нормально результат равен 15. b был увеличен.

Иными словами, почему Integer b = 4; System.out.println(b++); дает 4, хотя b был увеличен. - BenMansourNizar

@BenMansourNizar Это связано с тем, что вы используете постфиксный оператор (см. http://docs.oracle.com/javase/tutorial/java/nutsandbolts/operators.html.) С b++ значение сначала используется, а затем увеличивается. Если вы используете ++b, значение будет увеличено до использования. - user000001 2 июня '13 в 17:58

Спасибо большое, user0000001 :) - BenMansourNizar

Я надеюсь, что вы и другие люди находят эту информацию полезной, я действительно только что привел кучу вещей и прокомментированы на нем: P

+0

Вы бы разместили это сообщение, если бы оно не было заполнено скопированными материалами и содержало бы только ваше собственное предложение «Чтобы добавить к этому, это Java, который оценивает ...»? Или вы согласитесь, что это скорее комментарий, чем собственный ответ? – Tom

+0

@Tom Я не согласен, это не более комментарий, чем его собственный ответ. Нет, я бы, наверное, не отправил это. Здесь я просто собираю информацию, чтобы другие люди могли найти то, что им нужно знать, вместо того, чтобы просматривать комментарии. – Sam1370