• Compra una licencia de Windows 10/11 (10€) u Office (18€) al mejor precio u Office al mejor precio. Entra en este post con las ofertas
  • Conoce los Días Naranjas de PcComponentes: descuentos de hasta un 40% en tecnología. Entra en este post con las ofertas
  • ¡Bienvenid@! Recuerda que para comentar en el foro de El Chapuzas Informático necesitas registrar tu cuenta, tardarás menos de 2 minutos y te dará valiosa información además de ayudarte en lo que necesites o pasar un rato agradable con nosotros.

Problema programando con Java

SergiKyo96

De profesión Chapuzas
Registrado
25 Jun 2014
Mensajes
295
Puntos
18
Haber, esto es sencillo pretendo hacer un programilla que te pida que elijas entre dos opciones (escribiendolo por teclado) y una vez las hayas elegido mediante un condicional te lo calcule, el codigo me compila pero no funciona y me estoy empezando a frustrar, era a ver si alguien me podria ayudar


Codigo:

import java.util.*;

public class Transporte{

public static void main (String[] args){

Scanner tec = new Scanner ( System.in);
System.out.println("Porfavor indique que quiere convertir:" + "Millas-Km" + "Km-Millas");
String dato = tec.nexLine();

if (dato == "Millas-Km"){
System.out.println("Porfavor introduzca la cantidad de millas que desea convertir:");
double millas = tec.nextDouble();
double resultado1 = millas * 1.609344;
System.out.println("El resultado es:" + resultado1);
}
else if (dato == "Km-Millas"){

System.out.println("Porfavor introduzca la cantidad de Km que desea convertir:");
double Km = tec.nextDouble();
double resultado2 = Km * 0.621371192;
System.out.println("El resultado es:" + resultado2);
}
else System.out.println("Error esa variable no existe");
}
}
 
Has probado de usar el depurador para ver exactamente donde peta?
 
Haber, esto es sencillo pretendo hacer un programilla que te pida que elijas entre dos opciones (escribiendolo por teclado) y una vez las hayas elegido mediante un condicional te lo calcule, el codigo me compila pero no funciona y me estoy empezando a frustrar, era a ver si alguien me podria ayudar


Codigo:

import java.util.*;

public class Transporte{

public static void main (String[] args){

Scanner tec = new Scanner ( System.in);
System.out.println("Porfavor indique que quiere convertir:" + "Millas-Km" + "Km-Millas");
String dato = tec.nexLine();

if (dato == "Millas-Km"){
System.out.println("Porfavor introduzca la cantidad de millas que desea convertir:");
double millas = tec.nextDouble();
double resultado1 = millas * 1.609344;
System.out.println("El resultado es:" + resultado1);
}
else if (dato == "Km-Millas"){

System.out.println("Porfavor introduzca la cantidad de Km que desea convertir:");
double Km = tec.nextDouble();
double resultado2 = Km * 0.621371192;
System.out.println("El resultado es:" + resultado2);
}
else System.out.println("Error esa variable no existe");
}
}

Ahí el fallo?
 
El problema está en el condicional if. Java trata a los String como objetos por lo que el operando == compara si hace referencia al mismo espacio en memoria, no la igualdad. Para comparar String hay que usar .equals(). Quedaría así: if(dato.equals("Millas-Km"))

Enviado desde mi P6-U06 mediante Tapatalk
 
El problema está en el condicional if. Java trata a los String como objetos por lo que el operando == compara si hace referencia al mismo espacio en memoria, no la igualdad. Para comparar String hay que usar .equals(). Quedaría así: if(dato.equals("Millas-Km"))

Enviado desde mi P6-U06 mediante Tapatalk
Cierto, las cadenas de texto se comparan con "equals". Al ver que lo que le marcaba no estaba correcto ya dejé de leer xD.
 
El problema está en el condicional if. Java trata a los String como objetos por lo que el operando == compara si hace referencia al mismo espacio en memoria, no la igualdad. Para comparar String hay que usar .equals(). Quedaría así: if(dato.equals("Millas-Km"))

Enviado desde mi P6-U06 mediante Tapatalk

Cierto, no habia caido en el equals, que fallo mas tonto!

Muchas gracias!
 
Arriba