
Porque bucle while ,y condicional if - elsif no funcionan correctamente?
Publicado por Mateo (1 intervención) el 30/06/2017 18:16:14
Hola, soy un estudiante de java y no entiendo porque el output de este programa sale asi, espero que me puedan ayudar a entender y mejorar el codigo es este simple programa. Desde ya muchas gracias.
Aca esta el codigo o en el zip.
En el output me repite y me dice cosas que no deberia
Estoy pensando en un numero del 1 al 50, intenta adivinarlo!!
Para adivinarlo utiliza < o >, presiona enter y luego inserta el numero
29
Es el numero ... >
10
Si lo es
Es el numero ... Intenta escribiendo una expresión correcta
Es el numero ...
Espero que me puedan ayudar, desde ya muchas gracias!!
Aca esta el codigo o en el zip.
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
import java.util.Scanner;
import com.sun.org.apache.xerces.internal.util.SynchronizedSymbolTable;
public class AdivinarACpuV2 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int cantnumero = 50;
int random = (int) (Math.random() * cantnumero);
int ls = cantnumero;
int li = 1;
int bucle1 = 0;
int bucle = 0;
System.out.println("Estoy pensando en un numero del 1 al " + cantnumero + ", intenta adivinarlo!!");
System.out.println("Para adivinarlo utiliza < o >, presiona enter y luego inserta el numero");
System.out.println(random);
while (bucle1 == 0) {
//Pregunta por < o >
System.out.print("Es el numero ... ");
String resp = scanner.nextLine();
bucle = 0;
//Condional de respuesta
while (bucle == 0) {
if (resp.equals("<")) {
int numero = scanner.nextInt();
if (random < numero) {
ls = numero;
bucle = 1;
System.out.println("Si lo es");
} else {
li = numero;
bucle = 1;
System.out.println("No lo es");
}
} else if (resp.equals(">")) {
int numero = scanner.nextInt();
if (random > numero) {
li = numero;
bucle = 1;
System.out.println("Si lo es");
} else {
ls = numero;
bucle = 1;
System.out.println("No lo es");
}
} else {
System.out.println("Intenta escribiendo una expresion correcta");
bucle = 1;
}
}
//Checkea si ls-li == 1 y termina el codigo
if (ls - li == 1) {
System.out.println("Hasta aca");
bucle1 = 1;
}
}
}
}
En el output me repite y me dice cosas que no deberia
Estoy pensando en un numero del 1 al 50, intenta adivinarlo!!
Para adivinarlo utiliza < o >, presiona enter y luego inserta el numero
29
Es el numero ... >
10
Si lo es
Es el numero ... Intenta escribiendo una expresión correcta
Es el numero ...
Espero que me puedan ayudar, desde ya muchas gracias!!
- AdivinarACpu.java.zip(771,0 B)
Valora esta pregunta


0