Una duda sobre el condicional IF
Publicado por Iván Suárez (1 intervención) el 31/01/2007 22:40:38
Hola amigos:
Hace poco que empecé a estudiar (compaginando mi actual trabajo de pladur)VB de un libro de F.J. Ceballos, nivel básico. Y como no tengo medios ni profesor (soy autodidacta) agradecería a alguien que se atreva a aclararme la siguiente duda:
En el libro dice:
Cuando utilice una estructura If tiene que escribirla de la forma que se presenta a continuación, de lo contrario ocurrirá un error de sintaxis:
La ejecución de esta estructura sucede de la siguiente forma: si se cumple la condición-1, se ejecutan las sentencias-1, y si no se cumple, se examinan secuencialmente las siguiente condiciones hasta Else, ejecutándose las sentencias correspondiente al primer ElseIf cuya condición sea cierta. Si todas las condiciones son falsas, se ejecutan las sentencias-n corrpondientes a Else. En cualquier caso, se continúaen la sentencia que sigue a End If
Pues bien, en un ejemplo propuesto por el autor F.J. Ceballos, que lo expongo a continuación, no lleva el bloque End IF, a pesar de que tiene un código que pone == If vehículo <> "" Then Print "importe ="; importe == no hace falta el end if. Probé poniendo un End If y me sale el error de End If sin bloque if.
El código ejemplo:
Esperando vuestras respuestas, aprovecho la ocasión para enviar saludos a todos los colegas de la web del programador . com
Iván Suárez
Hace poco que empecé a estudiar (compaginando mi actual trabajo de pladur)VB de un libro de F.J. Ceballos, nivel básico. Y como no tengo medios ni profesor (soy autodidacta) agradecería a alguien que se atreva a aclararme la siguiente duda:
En el libro dice:
Cuando utilice una estructura If tiene que escribirla de la forma que se presenta a continuación, de lo contrario ocurrirá un error de sintaxis:
1
2
3
4
5
6
7
If condición-1 then
sentencias-1
Elseif condición-2
sentencis-2
Else
sentencias-n
End iIf
La ejecución de esta estructura sucede de la siguiente forma: si se cumple la condición-1, se ejecutan las sentencias-1, y si no se cumple, se examinan secuencialmente las siguiente condiciones hasta Else, ejecutándose las sentencias correspondiente al primer ElseIf cuya condición sea cierta. Si todas las condiciones son falsas, se ejecutan las sentencias-n corrpondientes a Else. En cualquier caso, se continúaen la sentencia que sigue a End If
Pues bien, en un ejemplo propuesto por el autor F.J. Ceballos, que lo expongo a continuación, no lleva el bloque End IF, a pesar de que tiene un código que pone == If vehículo <> "" Then Print "importe ="; importe == no hace falta el end if. Probé poniendo un End If y me sale el error de End If sin bloque if.
El código ejemplo:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
AutoRedraw = True
vehículo = InputBox("Clase de vehículo:")
Select Case LCase(vehículo) 'LCase convierte la cadena a minúsculas
Case "bicicleta"
importe = 100
Case "moto", "Coche"
km = InputBox("Kilómetros:")
importe = 30 * km
Case "camion", "camión"
km = InputBox("Kilómetros:")
tm = InputBox("Toneladas:")
importe = 30 * km + 25 * tm
Case Else
Print "Entrada no válida"
vehículo = ""
End Select
If vehículo <> "" Then Print "importe ="; importe
End Sub
Esperando vuestras respuestas, aprovecho la ocasión para enviar saludos a todos los colegas de la web del programador . com
Iván Suárez
Valora esta pregunta


0