Jump to content


Photo

"continue" Em Vb.net


  • Faça o login para participar
7 replies to this topic

#1 maxim

maxim

    Normal

  • Usuários
  • 93 posts
  • Sexo:Não informado

Posted 07/06/2006, 21:06

Boas, tenho o seguinte código em C#:

for (int i = 1; i <= 10; i++) 
	  {
		 if (i < 9) 
			continue;
		 Console.WriteLine(i);
	  }

Mas eu queria fazer isso em VB.net...

Só que não sei qual o equivalente do "continue"
Queria saber qual o comando para saltar logo para o "i" seguinte...

dim i as Integer = 1
Do While (i <= 10)
if (i < 9)  Then
 ' ?????????????????? Equivalente ao "continue" -> passar ao i seguinte
End If
Console.WriteLine(i);
i += 1;

Obrigado,
Max

Edição feita por: maxim, 07/06/2006, 21:15.


#2 Graymalkin

Graymalkin

    Novato no fórum

  • Usuários
  • 23 posts
  • Sexo:Não informado

Posted 07/06/2006, 21:45

É Continue mesmo, você só tem que especificar se é Continue Do ou Continue For. Ah, e isso só está disponível no VB 2005. Para versões anteriores (2002 e 2003) você pode simplesmente utilizar um If.

Abraços,

Graymalkin
"Se pudéssemos conhecer todos os percalços do nosso destino, a vida seria tão demasiado cheia de esperança e medo, de louvor e decepção, que não nos deixaria uma única hora de paz verdadeira." (Nathaniel Hawthorne)
Participe você também da campanha "Eu sei escrever!"
Acesse: Graymalkin Software

#3 maxim

maxim

    Normal

  • Usuários
  • 93 posts
  • Sexo:Não informado

Posted 08/06/2006, 03:03

oi Graymalkin

O problema é esse! Eu estou usando o vb 2003...
Mas não estou vendo como é que o "if" me pode ajudar. Pode mais concreto pf ?

Obrigado !
Max

#4 maxim

maxim

    Normal

  • Usuários
  • 93 posts
  • Sexo:Não informado

Posted 13/06/2006, 21:50

allô....

Ninguém me ajuda substituir o "continue" do C# para o vb 2003 ?

#5 Graymalkin

Graymalkin

    Novato no fórum

  • Usuários
  • 23 posts
  • Sexo:Não informado

Posted 13/06/2006, 22:46

Tomando como base aquele exemplo que você mostrou lá em cima, seria assim:

Dim i As Integer = 1
		Do While (i <= 10)
			If (i >= 9) Then
				Debug.WriteLine(i)
			End If
			i += 1
		Loop

É só inverter o operador (i < 9 passa a ser i >= 9) e você terá o efeito desejado.

Certo? ;)

Graymalkin
"Se pudéssemos conhecer todos os percalços do nosso destino, a vida seria tão demasiado cheia de esperança e medo, de louvor e decepção, que não nos deixaria uma única hora de paz verdadeira." (Nathaniel Hawthorne)
Participe você também da campanha "Eu sei escrever!"
Acesse: Graymalkin Software

#6 maxim

maxim

    Normal

  • Usuários
  • 93 posts
  • Sexo:Não informado

Posted 14/06/2006, 09:29

Desculpa Graymalkin. Mas esse exemplo que eu dei, foi muito simples apenas para vos perguntar qual era o equivalente ao "continue" Porque na realidade, o meu ciclo é um pouco mais complexo!

Do While (i < Message.Length)
				If (Message.Chars(i) = "[") Then
					Dim e1 As Integer = Message.IndexOf("]", i)
					Dim e2 As Integer = Message.IndexOf("=", i)
					If (e1 > 0) Then
						Dim bNone As Boolean = False
						Dim arg As String = Nothing
						Dim cmd As String
						If ((e2 < 0) OrElse (e2 > e1)) Then
							cmd = Message.Substring((i + 1), (e1 - i - 1))
							arg = Nothing
						Else
							cmd = Message.Substring((i + 1), (e2 - i - 1))
							arg = Message.Substring((e2 + 1), (e1 - e2 - 1))
							arg = arg.Trim
							'arg = basePage.Server.HtmlDecode(arg)
							If ((arg.Length > 2) _
										AndAlso ((arg.Chars(0) = Microsoft.VisualBasic.ChrW(34)) _
										AndAlso (arg.Chars((arg.Length - 1)) = Microsoft.VisualBasic.ChrW(34)))) Then
								arg = arg.Substring(1, (arg.Length - 2))
							End If
						End If
						cmd = cmd.ToLower
						If (Not bInCode OrElse (cmd = "/code")) Then
							Select Case (cmd)
								Case "b"
									tmp = (tmp + "<b>")
								Case "/b"
									tmp = (tmp + "</b>")
								Case "i"
									tmp = (tmp + "<em>")
								Case "/i"
									tmp = (tmp + "</em>")
								Case Else
									bNone = True
							End Select
						Else
							bNone = True
						End If
						If Not bNone Then
							i = e1 + 1
							'Quero colocar aqui o equivalente ao CONTINUE, para não correr o resto da função e fazer o LOOP
						End If
					End If
				End If
				tmp = (tmp + Message.Chars(i))
				i = (i + 1)
Loop


#7 Felipe Pena

Felipe Pena

    O temor do Senhor é o princípio da sabedoria

  • Ex-Admins
  • 6441 posts
  • Sexo:Masculino

Posted 15/06/2006, 08:43

A idéia seria criar uma variável que tenha o valor modificado ao passar no tal if que deveria ter um 'continue'.

E posterior dentro do loop, determinados comandos só seria executados se a tal variável não tivesse o valor trocado pelo if.

Certo?

If Not bNone Then

							'Variável que determinará se determinados comandos abaixo serão executados
							bContinue = True
							
							i = e1 + 1
							'Quero colocar aqui o equivalente ao CONTINUE, para não correr o resto da função e fazer o LOOP

						End If
					End If
				End If

				If Not bContinue Then
				
					tmp = (tmp + Message.Chars(i))
					i = (i + 1)

				Else

					bContinue = False
					
				End If

Loop

Felipe Pena
[...] ó terra, terra, terra; ouve a palavra do Senhor. — Jeremias 22:29

#8 maxim

maxim

    Normal

  • Usuários
  • 93 posts
  • Sexo:Não informado

Posted 15/06/2006, 11:07

valeu Eclesiastes!

ainda não testei porque não estou em casa, mas penso que assim vai dar!

Muito obrigado !

Max




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq