2016-06-09 4 views
-3
int a = 1; 
int b = 3; 
int c = 5; 
System.out.println(a + b + (c + " = "); 

Каким образом это будет выходной 45 = и не 9 =?Я просто так плохо в математике или я просто путаюсь с приоритетом оператора?

+0

Это не имеет ничего общего с математикой и все, что связано с типами. Что вы ожидаете * '5 +" = "'? – David

ответ

-3

1 + 3 = 4

5 плюс «=» получает вы «5 =», который является строкой, как и при добавлении строки и Int вы получаете строку (она сцепляет их вместе).

Когда вы добавляете int и строку, она объединяется ... так что вы получаете 4 + "5 =" (строка) .. и получаете 45 =.

+0

Возможно, множественные downvotes могут быть связаны с теми, кто придерживается философий, выраженных в этом [Мета-ответе] (http://meta.stackexchange.com/a/105231/271768) и этот [Мета-ответ] (http: // meta.stackexchange.com/a/202897/271768). Определение «полезный ответ» является неопределенным в отношении SO, и если что-то в значительной степени дублируется, ответ на дубликат может вообще не помогать. Если он не предоставляет информацию, на которую еще не ответили в другом месте. Только мои 2 цента. –

+0

Вы имеете в виду ... философию, выраженную и поддержанную в этих двух повторяющихся вопросах? – ThePerson

+0

Эти два мета-вопроса - это не тот же вопрос. Они связаны, но определенно не дублируют. В одном из них прямо говорится о дублировании дублирующих ответов, а в другом - о том, должны ли люди отвечать на вопросы, должны быть более ответственными и попытаться хотя бы увидеть, был ли задан вопрос (или один такой). Просто так происходит, что некоторые идеи в ответах перекрываются. –