PDA

View Full Version : Ancora a proposito di if.....else


quasar68
19-09-2004, 23:42
Scusate, ma continuo ad avere problemi con le procedure if else, anche se sembrano cosi' semplici, eppure mi sembra di fare tutto correttamente:

Private Sub cmdeuroconv_Click()
Dim e As Single
e = 1936.27
If txtop1.Text <> "" And txtop2.Text <> "" Then _
lblresult.Caption = "Se devi convertire €/£ scrivi la cifra in operatore1" & _
"invece per £/€ scrivila in operatore2"
ElseIf txtop1.Text <> "" And txtop2.Text = "" Then _
a = Val(txtop1.Text)
c = a * e
lblresult.Caption = Format(c, "##.####")
ElseIf txtop1.Text = "" And txtop2.Text <> "" Then
a = Val(txtop2.Text)
c = a / e
lblresult.Caption = Format(c, "##.####")
End If
End If
End If
End Sub


Il debug di ferma al primo "elseif" dicendomi sempre" errore di compilazione: else senza if, stavolta mi sembra di averlo scritto giusto, sono andato a capo dopo il then, ma niente

Scusate se vi rompo le scatole con queste inezie, ma sono alle prime armi::boh: :help:

Berno
20-09-2004, 01:36
Premetto che sono un ignorante non solo in vb ma con quasi tutti i linguaggi di programmazione (ma sto imparando)...

Se non ricordo male:

1) Perchè metti 3 endif? Mi pare ne basti uno solo...

2) Da come hai scritto il codice dopo lo then dell'if e del primo endif non mi pare che tu vada a capo, se non ricordo male _ serve per ingnorare il fatto che nel codice sia andat a capo...

Spero di non aver detto delle cavolate, comunque prova, non si sa mai :sofico:...

matpez
20-09-2004, 02:11
Hai fatto un po' di pasticcio... la sintassi giusta dell'IF è questa:

If <condizione> Then
[istruzioni]

Else
[istruzionielse]

End If



Detto questo ti passo la modifica al codice che hai messo tu... cmq se "indenti" come ho fatto io ti viene più facile la lettura! :)

Indendare vuol dire all'ineare giusto il codice, cioè gli IF che contengono parte di codice stanno più all'esterno, il codice contenuto all'interno!



If txtop1.Text <> "" And txtop2.Text <> "" Then
lblresult.Caption = "Se devi convertire €/£ scrivi la cifra in operatore1 invece per £/€ scrivila in operatore2"
Else
If txtop1.Text <> "" And txtop2.Text = "" Then
a = Val(txtop1.Text)
c = a * e
lblresult.Caption = Format(c, "##.####")
Else
If txtop1.Text = "" And txtop2.Text <> "" Then
a = Val(txtop2.Text)
c = a / e
lblresult.Caption = Format(c, "##.####")
End If
End If
End If

quasar68
20-09-2004, 13:43
Proprio cosi', facevo confusione, non andavo a capo quando dovevo e quando lo facevo non lo facevo in modo corretto

mi ha tratto in confusione piu' d'un libro in quanto mostra l'istruzione elseif attaccata e non else
if, quindi io l'applicavo senza pensare potesse essere quello

Vi ringrazio infinitamente per avermi illuminato:mano: