Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

200
Vistas
¿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 Respuestas
Responde la pregunta

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 Denunciar

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 Denunciar

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda