Значок «+
» в java «перегружен», что означает, что он имеет несколько значений. В арифметическом контексте - когда оно применяется к числам - это означает «плюс», как и следовало ожидать. Однако в контексте String, т. Е. Когда он применяется к двум строкам, это означает «конкатенация» или «строка вместе».
Для дальнейшего важно различать числа - величины, которые мы выполняем арифметикой и можем представлять различными способами - из строковых представлений этих чисел.
В вашем втором выражении System.out.println(x+x);
знак плюса означает добавление, поскольку оба аргумента (x
и x
) являются целыми числами. Таким образом, x+x
оценивает целое число 24
. Затем, поскольку мы печатаем это на стандартный вывод, мы должны понимать его как String, поэтому Java преобразует число 24
в строку "24"
, и это то, что напечатано.
В своем первом выражении x + "+" + x + "="
все термины понимаются как строки, так как Java не знает, как добавить целое число в строку, так что это предполагает, что вы имеете в виду представление String ("12"
) числа (12
). Поэтому под понятием «плюс» понимается «строка вместе», и поэтому он выполняет: он оценивает два экземпляра x
и получает 12
, превращает целое число 12
в строку "12"
и составляет строку «12 + 12 =», который затем печатается. (Окончательный «24», который мы уже рассмотрели выше)
Не знаю, что вы просите. Почему вы должны назначить свой ввод переменной? –
Это один из способов получить выводимый результат. 'System.out.printf ("% d +% d =% d% n ", x, x, x + x);' другое. У вас также может быть больше команд 'print'. –
Символы добавления используются для объединения строк –