Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

192
Visualizações
¿Por qué es concatenación en lugar de operación aritmética?
Scanner sal = new Scanner(System.in); System.out.print("Enter first_salary: "); int Salary1 = sal.nextInt(); System.out.print("Enter second_salary : "); int Salary2 = sal.nextInt(); System.out.print("Combined Salary is " + Salary1 + Salary2);

Estoy tratando de obtener la entrada del usuario dos veces y luego imprimir la suma. En cambio, la salida está concatenando los números en lugar de agregarlos.

over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

Porque el operador + se asocia de izquierda a derecha. Tu argumento es equivalente al explícito.

 (("Combined Salary is " + Salary1) + Salary2)

Dado que ("Combined Salary is " + Salary1) da como resultado una cadena, concatenará cadenas. Para agrupar de manera diferente, ajusta el orden de las operaciones entre paréntesis:

 System.out.print("Combined Salary is " + (Salary1 + Salary2));
over 4 years ago · Santiago Trujillo Relatório

0

Como dice la otra respuesta, + va de izquierda a derecha. Es una "buena idea" usar siempre paréntesis que muestren explícitamente el orden deseado de las operaciones , especialmente cuando se mezclan tipos.

Si lo hace, puede reducir los errores difíciles de encontrar.

Por ejemplo, si desea imprimir la suma de dos números enteros, usaría:

 System.out.println(num1 + num2);

Si quisiera agregar una cadena útil a la salida, agregaría "Sum of num1 and num2 :" y luego mantendría la suma entre paréntesis, dando:

 System.out.println("Sum of num1 and num2:" + (num1 + num2));
over 4 years ago · Santiago Trujillo Relatório

0

En cuanto a por qué sucede esto, la respuesta de @MadPhysicist cubre eso.

En cuanto a cómo evitar esto, puede usar paréntesis como dijeron o puede usar formato de cadena, como este:

 System.out.println("Combined Salary is %d".formatted(Salary1 + Salary2));

String ha tenido el método formatted desde Java 15. Si tiene una versión anterior, puede usar el método de format estático en su lugar:

 System.out.println(String.format("Combined Salary is %d", Salary1 + Salary2));
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda