Jump to content

Ciclos Do While \ Do Until


jviana
 Share

Recommended Posts

Estou a fazer um programa que consiste em descer o valor de uma textbox até 0, chegamdo a 0 pára

Já devenvolvi isto:

Public Class Form1
    Dim contador As Integer
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Timer1.Start()
    End Sub

    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        'até que se torne verdadeiro:
        'contador = 0
        Do Until contador = 0
            'faz isto:
            'de aqui ------------------
            contador = TextBox1.Text
            contador = contador - 1
            'até aqui------------------
        Loop
        'acabando isto ▲
        'faz isto certo?? ▼ 
        TextBox1.Text = contador
    End Sub
End Class

Está aqui o problema, não sei onde mas está:

Quando carrego no botão o timer1 começa a contar e a variavel "contador" passa logo para 0

Learning

  • VB.Net
  • HTML
  • C/C++

Link to comment
Share on other sites

No evento click do butão colocas:

  contador =  TextBox1.Text
  Timer1.Start()

e no Timer colocas:

        Do
            contador -= 1
            TextBox1.Text  = contador
        Loop Until contador = 0
Link to comment
Share on other sites

No evento click do butão colocas:

  contador =  TextBox1.Text
  Timer1.Start()

e no Timer colocas:

        Do
            contador -= 1
            TextBox1.Text  = contador
        Loop Until contador = 0

Qual é o problema?

Learning

  • VB.Net
  • HTML
  • C/C++

Link to comment
Share on other sites

O problema é que na primeira vez que o timer é chamado, ele faz logo a sequência toda até zero. Se quiseres ver os números a descer, tens de tirar um valor de cada vez que chamas o teu tick do TImer.

Deverá ficar alguma coisa do género:

Public Class Form1
    Dim contador As Integer
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Timer1.Start()
    End Sub

    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        if contador >= 0 then
           TextBox1.Text = contador  ' colocar o contador na caixa de texto
            contador = contador - 1
        else
            ' ja chegou ate zero, parar o contador
            Timer1.Stop()
        end if
    End Sub
End Class

Nick antigo: softclean | Tens um projeto? | Wiki P@P

Ajuda a comunidade! Se encontrares algo de errado, usa a opção "Denunciar" por baixo de cada post.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.