Lua - no sale del ciclo si un carácter no es valido

 
Vista:
sin imagen de perfil
Val: 11
Ha mantenido su posición en Lua (en relación al último mes)
Gráfica de Lua

no sale del ciclo si un carácter no es valido

Publicado por lucas (6 intervenciones) el 21/06/2020 23:47:10
En el código hago un bucle para las opciones que no son válidas, es decir, las distintas de 1,2 o 3 .Mi problema es que en la primera iteración todo funciona bien, pero si ingreso dos caracteres no valido y el tercero es correcto no sale del ciclo por lo cual debería salir por su condición, ¿Que problema tendria? .
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
function menu(...)
	print("Bienvenido al menu")
	print("Las opciones son")
	print("Presione 1 si deseas ingresar a tu cuenta")
	print("Presione 2 si deseas ingresar a Dudas")
	print("Presione 3 si deseas salir")
	print("- - - - - - - - - - - - - - - - - - - - - - -")
	n1 = tonumber(io.read())
	if numero == nil or math.mod(numero,1)~=0 then
	print("porfavor ingrese el numero de las opciones")
	n1 = tonumber(io.read())
	end
	opcion = true
	while opcion == true do
	   if n1 == 1 then
			print("Haz ingresado a tu cuenta")
			opcion = false
	   elseif n1 == 2 then
			print("Haz ingresado a dudas")
			opcion = false
	   elseif n1 == 3 then
			print("Adios señor")
			opcion = false
	   else
			while n1 ~= 1 or n1 ~= 2 or n1 ~= 3 do
			print("porfavor ingrese el numero de las opciones")
			n1 = tonumber(io.read())
			opcion = true
		end
end
end
end
menu1 = menu(...)
print(menu1)
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: 21
Ha mantenido su posición en Lua (en relación al último mes)
Gráfica de Lua

no sale del ciclo si un carácter no es valido

Publicado por dario (5 intervenciones) el 22/06/2020 05:45:33
Hola, no entiendo esta condicion.

1
if numero == nil or math.mod(numero,1)~=0 then

Porque usas nil y porque el resto de la division (mod).

Salu2.
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: 21
Ha mantenido su posición en Lua (en relación al último mes)
Gráfica de Lua

no sale del ciclo si un carácter no es valido

Publicado por dario (5 intervenciones) el 22/06/2020 06:01:11
Quieres algo asi.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
repeat
  print "Presione 1 si desea ingresar a tu cuenta"
  print "Presione 2 si desea ingresar a dudas"
  print "Presione 3 si deseas salir"
  opcion = tonumber(io.read())
 
  if opcion == 1 then
    print "Has ingresado a tu cuenta"
  elseif opcion == 2 then
    print "Has ingresado a dudas"
  elseif opcion == 3 then
    print "Adios senor"
  else
    print "Opcion incorrecta"
  end
 
until opcion == 1 or opcion == 2 or opcion == 3
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