Java - Repetición con while (respuesta S/N)

 
Vista:
sin imagen de perfil
Val: 52
Ha disminuido 1 puesto en Java (en relación al último mes)
Gráfica de Java

Repetición con while (respuesta S/N)

Publicado por rodic (35 intervenciones) el 27/12/2017 12:46:52
Buenos días,

tengo una duda con el condicional while, es respecto a la típica pregunta de Si/No;

el caso es que mi aplicación está definida antes de realizar esa pregunta, y quiero repetir la ejecución de la aplicación si la respuesta es S:

el código es el siguiente:

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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
public class Tarea04Ejericio01Numpar {
 
    /**
     * @throws java.io.IOException
     * 
     */
 
    public static double numDouble, numDouble2;
    public static String numero, numero2;
 
    public static void main(String[] args) throws IOException {
 
        //Creamos la clase BufferedReader para la entrada de datos por teclado:
        Scanner entrada = new Scanner(System.in);
 
        //creamos código para introducir con la clase y el condicional para saber si es par o impar:
        System.out.print("Introduce un numero: ");
            numero = entrada.nextLine();
            numDouble = Double.parseDouble(numero);
            if (numDouble%2!=0){
                System.out.println("El numero es impar");
            }
            else{
                System.out.println("El numero es par");
            }
 
        //Ahora creo el código para preguntar si deseo continuar:
        System.out.print("¿Desea continuar? ");
        System.out.println("S / N ");
        String opc = entrada.next();
        while (opc.equals("s") || opc.equals("S")) { // Desicion repetir o no 
            System.out.print("Introduce un numero: ");
            numero2 = entrada.nextLine();
            numDouble2 = Double.parseDouble(numero2);
            if (numDouble2%2!=0){
                System.out.println("El numero es impar");
            }
            else{
                System.out.println("El numero es par");
            }
 
            System.out.println ("Ejecutar de nuevo?");
            System.out.println("S / N");
            opc = entrada.next();
        }
 
    }
 
}


Sé que hasta el whiale está bien, pero me lio a partir de ahí, la condición doy por hecho que está bien, pero es a partirde de la sentencias (letra en negrito) cuando no se como hacerlo, he probado creando una segunda variable como podéis ver, pero me sale error.

¿Podéis aayudarme? gracias.
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
sin imagen de perfil
Val: 358
Bronce
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Repetición con while (respuesta S/N)

Publicado por Nicolas (137 intervenciones) el 27/12/2017 13:03:49
Hola rodic.
Tienes que ver el procedimiento lógico del algoritmo que estaás desarrollando. Te paso el main()

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[]) {
 
//Creamos la clase BufferedReader para la entrada de datos por teclado:
    Scanner entrada = new Scanner(System.in);
 
    boolean seguir = true;
 
//Ahora creo el código para preguntar si deseo continuar:
    while (seguir) {
        System.out.print("¿Desea continuar? ");
 
        System.out.println("S / N ");
        String opc = entrada.next();
        if (opc.equals("s") || opc.equals("S")) { // Desicion repetir o no 
            System.out.print("Introduce un numero: ");
            String numero = entrada.next();
            double numDouble = Double.parseDouble(numero);
            if (numDouble % 2 != 0) {
                System.out.println("El numero es impar");
            } else {
                System.out.println("El numero es par");
            }
        }else{
            seguir=false;
        }
    }
 
}

Revisalo.
Espero te ayude.
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: 52
Ha disminuido 1 puesto en Java (en relación al último mes)
Gráfica de Java

Repetición con while (respuesta S/N)

Publicado por rodic (35 intervenciones) el 28/12/2017 15:56:22
Muchas gracias Nicolas,

me había hecho un pequeño lío si...
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: 11
Ha aumentado su posición en 3 puestos en Java (en relación al último mes)
Gráfica de Java

Repetición con while (respuesta S/N)

Publicado por Yesica (3 intervenciones) el 29/03/2021 04:37:16
Holaaa me gustaría que me ayudarán con este trabajo.
Las instrucciones son las siguientes:
Juego de dados. Consiste en el lanzamiento de dos dados, el usuario va indicar el valor de la suma de la cara de los dados que cree que va resultar, si acerta se debe mostrar un mensaje alusivo a "Felicidades, acertaste" y sino coinciden los valores mostrarle el mensaje "Lo siento, fallaste", además se debe mostrar el valor de la cara de cada dado (del dado1 y dado2).
tmp_1616979166863
tmp_1616979171809
tmp_1616979176351
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

Repetición con while (respuesta S/N)

Publicado por Kabuto (1381 intervenciones) el 29/03/2021 12:08:32
Hola.
Hay varios fallos.


Primero:

imagen_2021-03-29_115552

Si esas variables las encierras entre las comillas, ya no son variables. Ahora es una cadena de texto
Y suponiendo que siguieran siendo variables, ahí estarías preguntando:
"si el resultado de comparar primerSuma con segundaSuma (que el resultado sería TRUE o FALSE) es equivalente al char que contiene la variable resp"

Lo cual no tiene sentido, primero porque no es esa la pregunta que queremos hacer, y segundo porque estaríamos comparando un boolean con un char.

Por otra lado, la supuesta variable segundaSuma ni siquiera está declarada en ningún sitio.

Y por último, la variable resp donde el usuario introduce el valor de la suma que ha de adivinar, debería ser de tipo int (para poder comparar con los dados) y no un char.

Te propongo la siguiente solución.
La clase que va a simular un dado, que mejor que llamarla Dado, y va a ser muy simple: un atributo que representa la cara del dado y un método para tirarDado, como el tuyo.

1
2
3
4
5
6
7
8
9
public class Dado {
 
	public int caraDado;
 
	public void tirarDado() {
		caraDado = (int) (Math.random() * 6 + 1);
	}
 
}

Luego el programa principal donde usamos dos objetos de esta clase Dado
Al usuario le pedimos que pronostique un resultado y esto lo recogemos en una variable int (hago un parseo a int de lo que introduce por teclado.
Lanzamos los dados y mostramos el valor de sus caras.
Y entonces compruebo si la suma de esas caras coincide con la suma que había pronosticado el usuario.

Y por último le pregunto si quiere volver a jugar o no.
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
public class Acertar {
 
	public static void main(String[] args) {
		Dado dado1 = new Dado();
		Dado dado2 = new Dado();
		Scanner teclado = new Scanner(System.in);
		char continuar = 's';
 
		while(continuar == 's') {
			System.out.print("\nAdivina la suma de ambos dados: ");
			int suma = Integer.parseInt(teclado.nextLine());
			//Tiramos dados
			System.out.println("\nVamos a lanzar los dados...");
			dado1.tirarDado();
			dado2.tirarDado();
			System.out.println("Dado 1: " + dado1.caraDado);
			System.out.println("Dado 2: " + dado2.caraDado);
			//Comprobamos si ha acertado
			if (suma == dado1.caraDado + dado2.caraDado)
				System.out.println("\nFelicidades, acertaste");
			else
				System.out.println("\nLo siento, fallaste");
			System.out.print("\n¿Intentarlo otra vez?(s/n): ");
			continuar = teclado.nextLine().charAt(0);
		}
		System.out.println("\n\t\tFIN DE PROGRAMA");
		teclado.close();
	}
 
}
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: 11
Ha aumentado su posición en 3 puestos en Java (en relación al último mes)
Gráfica de Java

Repetición con while (respuesta S/N)

Publicado por Yesica (3 intervenciones) el 30/03/2021 01:03:21
Muchas gracias por la ayuda
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: 11
Ha aumentado su posición en 3 puestos en Java (en relación al último mes)
Gráfica de Java

Repetición con while (respuesta S/N)

Publicado por Yesica (3 intervenciones) el 25/04/2021 18:59:37
Me podrías ayudar, necesito un programa en dónde se debe de internet el área y perímetro de un triángulo equilátero, escaleno e isosceles
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

Repetición con while (respuesta S/N)

Publicado por Kabuto (1381 intervenciones) el 25/04/2021 20:53:37
Hola.
Es mejor si abres un tema nuevo, donde el título se corresponda con lo que se pregunta. Así en el futuro si alguien tiene la misma duda o similar, haciendo una búsqueda le llevaría a ese tema y le serviría de ayuda.

Y escribir bien el enunciado del ejercicio, incluso mejor si se pone el enunciado original
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

Repetición con while (respuesta S/N)

Publicado por carlos (3 intervenciones) el 16/03/2022 18:22:40
hola. me podrian ayudar cono hacer el siguiente codigo por favor
Calcular el cubo y la raíz cuadrada de números enteros desde 10 hasta 20, con incrementos de 1.

X X*X raíz(x)
10
11
12
13
.
.
.
20

¿Deseas visualizar nuevamente la lista?
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

Repetición con while (respuesta S/N)

Publicado por Kabuto (1381 intervenciones) el 17/03/2022 09:01:47
Comienza tú un código y te ayudamos a completar o explicar allá donde te atasques.

Empieza paso a paso.
Por ejemplo, solamente haz que aparezcan en pantalla los números del 10 al 20. ¿Sabrías hacerlo?
Inténtalo y publica aquí el código que hayas conseguido hacer.
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

Repetición con while (respuesta S/N)

Publicado por carlos (3 intervenciones) el 17/03/2022 14:32:40
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import java.util.Scanner;
public class ll
{
    public static void main(String[] args){
            int x=10;
 
        System.out.println("x             x*x*x                 raiz(x)");
        System.out.println("------------------------------------------");
        while(x<=20){
            System.out.println(x+"     "+x*x*x+"               "+Math.sqrt(x));
            x=x+1;
        }
        Scanner T=new Scanner (System.in);
        char ciclo='s';
        while ((ciclo =='s')||(ciclo=='s')){
            System.out.println("¿deseas visualizar nuevamente la lista s/n?");
            ciclo=T.next().charAt(0);
            Scanner s =new Scanner (System.in);
 
}
}
}
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

Repetición con while (respuesta S/N)

Publicado por Kabuto (1381 intervenciones) el 18/03/2022 00:21:15
Bueno, pues ya lo tienes.

Pero si quieres poder repetir el listado en pantalla, has de colocar el código que genera el listado DENTRO del bucle while que pregunta si se quiere repetir o no.
Y basta con declarar un único objeto Scanner.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
public class Main {
 
	public static void main(String[] args) {
 
		Scanner teclado = new Scanner(System.in);
		char ciclo='s';
 
		while ((ciclo =='s')||(ciclo=='S')){
			int x=10;
			System.out.println("x             x*x*x                 raiz(x)");
			System.out.println("------------------------------------------");
			while(x<=20){
				System.out.println(x+"           "+x*x*x+"               "+Math.sqrt(x));
				x=x+1;
			}
 
 
			System.out.println("¿deseas visualizar nuevamente la lista s/n?");
			ciclo=teclado.nextLine().charAt(0);
		}
		teclado.close();
	}
}
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

Repetición con while (respuesta S/N)

Publicado por carlos (3 intervenciones) el 18/03/2022 01:32:41
muchas gracias, la parte del bucle era lo que me faltaba, mil gracias
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