Java - Error en else ayuda

 
Vista:
sin imagen de perfil
Val: 8
Ha aumentado su posición en 5 puestos en Java (en relación al último mes)
Gráfica de Java

Error en else ayuda

Publicado por daniel (4 intervenciones) el 04/05/2019 18:12:19
Error en else porfavor ayuda

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
public static void main(String[] args) {
 
    Scanner entrada = new Scanner(System.in);
 
    String text="si";
 
    System.out.print("Responde con si o no:");
    System.out.println("\n");
    System.out.println("Estas bien?");
    System.out.println("\n");
    entrada.nextLine();
    System.out.println("\n");
 
    if text.equalsIgnoreCase("si"){
        System.out.println("Que bien me alegro.");
    }else{
        System.out.println("bueno no sera pa tanto.");
    }
    System.out.println("\n");
    System.out.println("Eres asustadizo?");
    System.out.println("\n");
    entrada.nextLine();
 
    if (text!="si")
        System.out.print("Asi no avanzaras en la vida.");
    else
        System.out.println("\n");
        System.out.println("Entonces estas preparado.");
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Kabuto
Val: 3.428
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Error en else ayuda

Publicado por Kabuto (1381 intervenciones) el 04/05/2019 21:48:37
Además, cuando lees por teclado con nextLine(), no lo estás recogiendo en la variable text.

Si haces esto:

1
2
3
4
5
6
7
8
String text="si";
 
System.out.print("Responde con si o no:");
System.out.println("\n");
System.out.println("Estas bien?");
System.out.println("\n");
entrada.nextLine();
System.out.println("\n");

Lo que haya tecleado el usuario se pierde.
Para recogerlo y poder comparar en los if, tienes que:

1
2
3
4
5
6
7
8
String text="si";
 
System.out.print("Responde con si o no:");
System.out.println("\n");
System.out.println("Estas bien?");
System.out.println("\n");
text = entrada.nextLine();
System.out.println("\n");

Lo mismo tienes que hacer para la siguiente pregunta.
Por cierto, en el último if, para el else tendrás que usar llaves si quieres que ocurran los dos System.out.

Ahora mismo, solo incluye un System.out:
1
2
3
4
5
if (text!="si")
System.out.print("Asi no avanzaras en la vida.");
else
System.out.println("\n");
System.out.println("Entonces estas preparado."); //Este System.out está fuera del else.

Con llaves, incluirá los dos:
1
2
3
4
5
if (text!="si")
System.out.print("Asi no avanzaras en la vida.");
else {
System.out.println("\n");
System.out.println("Entonces estas preparado."); } //Ahora si incluye los dos System.out
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 8
Ha aumentado su posición en 5 puestos en Java (en relación al último mes)
Gráfica de Java

Error en else ayuda

Publicado por daniel (4 intervenciones) el 04/05/2019 21:57:01
Ok muchas gracias lo probaré ahora mismo. Ya me tenía bloqueado y no entendía por qué.

Os cuento en lo que pruebe.
Un gracias enorme.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 8
Ha aumentado su posición en 5 puestos en Java (en relación al último mes)
Gráfica de Java

Error en else ayuda

Publicado por daniel (4 intervenciones) el 06/05/2019 00:54:52
1
2
3
4
5
if (text!="si")
System.out.print("Asi no avanzaras en la vida.");
else {
System.out.println("\n");
System.out.println("Entonces estas preparado."); } //Ahora si incluye los dos System.out

lo e probado y no me sale el else se queda en el if.

por favor espero no ser pesado pero para lo básico que seguro que es me esta trayendo de cabeza.

un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Kabuto
Val: 3.428
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Error en else ayuda

Publicado por Kabuto (1381 intervenciones) el 06/05/2019 19:51:37
Como dijo Rodrigo, para comparar Strings y cualquier otro objeto, hay que usar equals(), o también equalsIgnoreCase() para los objetos de clase String.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
public static void main(String[] args) {
 
    Scanner entrada = new Scanner(System.in);
 
    String text="si";
 
    System.out.print("Responde con si o no:");
    System.out.println("\n");
    System.out.println("Estas bien?");
    System.out.println("\n");
    text = entrada.nextLine();
    System.out.println("\n");
 
    if (text.equalsIgnoreCase("si")){
        System.out.println("Que bien me alegro.");
    }else{
        System.out.println("bueno no sera pa tanto.");
    }
    System.out.println("\n");
    System.out.println("Eres asustadizo?");
    System.out.println("\n");
    text = entrada.nextLine();
 
    if (!text.equalsIgnoreCase("si"))
        System.out.print("Asi no avanzaras en la vida.");
    else {
        System.out.println("\n");
        System.out.println("Entonces estas preparado.");
    }
    entrada.close();
}

Los comparadores de igualdad básicos como == y != ..... solo sirven para comparar los tipos de datos básicos como los int, double, byte, etc...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
sin imagen de perfil
Val: 8
Ha aumentado su posición en 5 puestos en Java (en relación al último mes)
Gráfica de Java

Error en else ayuda

Publicado por daniel (4 intervenciones) el 06/05/2019 20:04:06
Si finalmente e utilizado el mismo del primer if asiq al fin lo tengo solucionado, muchas gracias kaburo y Rodrigo por todo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar