Java - Pregunta de porque no me va esto.

 
Vista:

Pregunta de porque no me va esto.

Publicado por Roberto (1 intervención) el 01/12/2019 01:05:48
Hola, soy algo nuevo de esto en java, y hice este código para un ejercicio de la escuela, y es que ya lo revise varias veces y no encuentro el fallo, porque no me va, si alguien es tan amable y me pueda decir en que estoy mal :c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import java.util.Scanner;
public class caracteristicas {
    public static void main(String[] args) {
   Scanner entrada = new Scanner(System.in);
   String nombre = "";
   int resistencia = 0;
   int inteligencia = 0;
   int op = 0;
        System.out.println("Introduce tu nombre: ");
        nombre = entrada.next();
        System.out.println("Tu nombre es " +nombre);
        System.out.println("¿Que quieres hacer? a)Correr b)Leer");
        op = entrada.nextInt();
 
        if (op == 'a'){
            resistencia++;
            System.out.println("Escogiste correr ganas un punto");
        }
        if(op=='b'){
            inteligencia++;
            System.out.println("Escogiste leer ganas un punto.");
          }
        else{
                System.out.println("error");
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 Lawliet
Val: 308
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Pregunta de porque no me va esto.

Publicado por Lawliet (303 intervenciones) el 01/12/2019 02:29:40
Hola!!!

En base al código que muestras, el error lo tendrías en la línea que marco en negritas.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import java.util.Scanner;
public class caracteristicas {
    public static void main(String[] args) {
   Scanner entrada = new Scanner(System.in);
   String nombre = "";
   int resistencia = 0;
   int inteligencia = 0;
   int op = 0;
        System.out.println("Introduce tu nombre: ");
        nombre = entrada.next();
        System.out.println("Tu nombre es " +nombre);
        System.out.println("¿Que quieres hacer? a)Correr b)Leer");
        op = entrada.nextInt();
 
        if (op == 'a'){
            resistencia++;
            System.out.println("Escogiste correr ganas un punto");
        }
        if(op=='b'){
            inteligencia++;
            System.out.println("Escogiste leer ganas un punto.");
          }
        else{
                System.out.println("error");

El error es simplemente que andas preguntando por un número y en tu validación andas preguntando por una letra, por lo tanto truena la aplicación si pones una letra, en caso de poner en número mandarías error debido a que cae en tu else de la validación por obvias razones.

Tienes dos posibles soluciones:
1.- Cambiar la validación por números.
2.- En vez preguntar por un número preguntar por una letra.

En pocas palabras debes decidir si trabajaras con números o con letras y en base a eso esperar una cosa u otra y hacer tus validaciones correspondientes, después de todo un 1 no es igual a una letra a y una letra b no es igual a 2 por obvias razones ^^!!

Sin más que comentar, quedo al pendiente de cualquier duda y/o comentario.

Saludos! :3
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