15 - Estructuras condicionales anidadas |
Habíamos visto la estructura condicional if
if condicion then instrucciones else instrucciones end if
Hay situaciones donde por la rama del else podemos disponer otra estructura condicional y así sucesivamente.
Para ver la sintaxis desarrollaremos un formulario donde ingresaremos un valor por teclado comprendido entre 1 y 1000. Luego mostraremos cuantos dígitos tiene. Emplearemos una serie de if anidados para ver la cantidad de dígitos.
pagina1.html
<html> <head> <title>problema</title> </head> <body> <form action="pagina1.asp" method="post"> Ingresar un valor entre 1 y 1000: <input type="text" name="valor"><br> <input type="submit" value="calcular"> </form> </body> </html>
La página que contiene el programa ASP es
pagina1.asp
<%option explicit%> <html> <head> <title>problema</title> </head> <body> <% dim v v=cint(request.form("valor")) if v<10 Then response.write("Tiene un dígito") else if v<100 Then response.write("Tiene dos dígitos") else if v<1000 Then response.write("Tiene tres dígitos") else if v<10000 Then response.write("Tiene cuatro dígitos") end if end if end if end if %> </body> </html>
Definimos una variable y guardamos el contenido del control text en esta, previa conversión a tipo de dato entero:
dim v v=cint(request.form("valor"))
La parte del verdadero del primer if es similar a lo ya visto:
if v<10 Then response.write("Tiene un dígito") else
La rama del else contiene otra estructura condicional:
if v<100 Then response.write("Tiene dos dígitos")
Nuevamente esta estructura condicional interna por la rama del else tiene otra estructura condicionas:
if v<1000 Then response.write("Tiene tres dígitos")
Finalmente por el else de esta estructura condicional tenemos una nueva estructura condicional:
if v<10000 Then response.write("Tiene cuatro dígitos") end if
Es importante notar que debemos cerrar con end if cada estructura condicional:
end if end if end if
La técnica mas adecuada para no confundirse como cerrar cada estructura condicional es escribir inicialmente esto:
if v<10 Then response.write("Tiene un dígito") else end if
Es decir disponemos todo el código que hay por la rama del verdadero, luego la palabra else y procedemos a cerrar el if.
Como segundo paso procedemos a escribir la actividad del else:
if v<10 Then response.write("Tiene un dígito") else if v<100 Then response.write("Tiene dos dígitos") else end if end if
Nuevamente planteamos la estructura condicional sin indicar la actividad del else, pero cerramos correctamente con el end if.
Repetimos el mismo proceso para la rama del else:
if v<10 Then response.write("Tiene un dígito") else if v<100 Then response.write("Tiene dos dígitos") else if v<1000 Then response.write("Tiene tres dígitos") else end if end if end if
Por último disponemos el código del else de la estructura if más anidada, quedando el código:
if v<10 Then response.write("Tiene un dígito") else if v<100 Then response.write("Tiene dos dígitos") else if v<1000 Then response.write("Tiene tres dígitos") else if v<10000 Then response.write("Tiene cuatro dígitos") end if end if end if end if