Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Executa condicionalmente um grupo de instruções, dependendo do valor de uma expressão.
Sintaxe
' Multiline syntax:
If condition [ Then ]
[ statements ]
[ ElseIf elseifcondition [ Then ]
[ elseifstatements ] ]
[ Else
[ elsestatements ] ]
End If
' Single-line syntax:
If condition Then [ statements ] [ Else [ elsestatements ] ]
Links rápidos para código de exemplo
Este artigo inclui vários exemplos que ilustram os Ifusos do ...Then...Else Declaração:
Partes
condition
Obrigatório. Expressão. Deve avaliar para True ou False, ou para um tipo de dados que é implicitamente convertível em Boolean.
Se a expressão for uma variável anulávelBoolean que é avaliada como Nothing, a condição será tratada como se a expressão fosse False, e os ElseIf blocos serão avaliados se existirem, ou o Else bloco será executado se existir.
Then
Obrigatório na sintaxe de linha única; opcional na sintaxe de várias linhas.
statements
Opcional. Uma ou mais instruções a seguir If(...)Then que são executadas se condition avaliadas como True.
elseifcondition
Obrigatório se ElseIf estiver presente. Expressão. Deve avaliar para True ou False, ou para um tipo de dados que é implicitamente convertível em Boolean.
elseifstatements
Opcional. Uma ou mais instruções a seguir ElseIf(...)Then que são executadas se elseifcondition avaliadas como True.
elsestatements
Opcional. Uma ou mais instruções que são executadas se nenhuma expressão ou condition anterior elseifcondition for avaliada como True.
End If
Encerra a versão multilinha do If...Then...Else bloquear.
Observações
Sintaxe de várias linhas
Quando um If...Then...Else a declaração é encontrada, condition é testada. Se condition for True, as instruções a seguir Then são executadas. Se condition for False, cada ElseIf afirmação (se houver) é avaliada em ordem. Quando um Trueelseifcondition é encontrado, as instruções imediatamente após o associado ElseIf são executadas. Se no elseifcondition for avaliado como True, ou se não ElseIf houver instruções, as instruções a seguir Else serão executadas. Depois de executar as instruções a seguir Then, ElseIfou Else, a execução continua com a instrução seguinte End If.
As ElseIf cláusulas e são Else ambas opcionais. Você pode ter quantas ElseIf cláusulas quiser em um If...Then...Else mas nenhuma ElseIf cláusula pode aparecer depois de uma Else cláusula.
If...Then...Else as instruções podem ser aninhadas umas nas outras.
Na sintaxe de várias linhas, a If instrução deve ser a única instrução na primeira linha. As ElseIfinstruções , Elsee e End If podem ser precedidas apenas por um rótulo de linha. O If...Then...Else block deve terminar com uma End If instrução.
Gorjeta
O Select... A instrução Case pode ser mais útil quando você avalia uma única expressão que tem vários valores possíveis.
Sintaxe de linha única
Você pode usar a sintaxe de linha única para uma única condição com código para executar se for true. No entanto, a sintaxe de várias linhas fornece mais estrutura e flexibilidade e é mais fácil de ler, manter e depurar.
O que se segue à palavra-chave é examinado Then para determinar se uma instrução é uma linha Ifúnica. Se algo diferente de um comentário aparecer depois Then na mesma linha, a instrução será tratada como uma instrução de linha If única. Se Then estiver ausente, deve ser o início de uma linha Ifmúltipla ...Then...Else.
Na sintaxe de linha única, você pode ter várias instruções executadas como resultado de uma Ifdecisão ...Then Todas as instruções devem estar na mesma linha e separadas por dois pontos.
Exemplo de sintaxe de várias linhas
O exemplo a seguir ilustra o uso da sintaxe de várias linhas do If...Then...Else declaração.
'Create a Random object to seed our starting value
Dim randomizer As New Random()
'set our variable
Dim count As Integer = randomizer.Next(0, 5)
Dim message As String
'If count is zero, output will be no items
If count = 0 Then
message = "There are no items."
'If count is 1, output will be "There is 1 item.".
ElseIf count = 1 Then
message = "There is 1 item."
'If count is greater than 1, output will be "There are {count} items.", where {count} is replaced by the value of count.
Else
message = $"There are {count} items."
End If
Console.WriteLine(message)
'This example displays output like the following:
' There are 4 items.
Exemplo de sintaxe aninhada
O exemplo a seguir contém If...Then...Else declarações.
Public Sub Main()
' Run the function as part of the WriteLine output.
Console.WriteLine("Time Check is " & CheckIfTime() & ".")
End Sub
Private Function CheckIfTime() As Boolean
' Determine the current day of week and hour of day.
Dim dayW As DayOfWeek = DateTime.Now.DayOfWeek
Dim hour As Integer = DateTime.Now.Hour
' Return True if Wednesday from 2 to 3:59 P.M.,
' or if Thursday from noon to 12:59 P.M.
If dayW = DayOfWeek.Wednesday Then
If hour = 14 Or hour = 15 Then
Return True
Else
Return False
End If
ElseIf dayW = DayOfWeek.Thursday Then
If hour = 12 Then
Return True
Else
Return False
End If
Else
Return False
End If
End Function
'This example displays output like the following:
'Time Check is False.
Exemplo de sintaxe de linha única
O exemplo a seguir ilustra o uso da sintaxe de linha única.
Private Sub SingleLine()
'Create a Random object to seed our starting values
Dim randomizer As New Random()
Dim A As Integer = randomizer.Next(10, 20)
Dim B As Integer = randomizer.Next(0, 20)
Dim C As Integer = randomizer.Next(0, 5)
'Let's display the initial values for comparison
Console.WriteLine($"A value before If: {A}")
Console.WriteLine($"B value before If: {B}")
Console.WriteLine($"C value before If: {C}")
' If A > 10, execute the three colon-separated statements in the order
' that they appear
If A > 10 Then A = A + 1 : B = B + A : C = C + B
'If the condition is true, the values will be different
Console.WriteLine($"A value after If: {A}")
Console.WriteLine($"B value after If: {B}")
Console.WriteLine($"C value after If: {C}")
End Sub
'This example displays output like the following:
'A value before If: 11
'B value before If: 6
'C value before If: 3
'A value after If: 12
'B value after If: 18
'C value after If: 21