Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

197
Views
¿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 answers
Answer question

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 Report

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!