[ASP VB] for continue

Pagina: 1
Acties:

  • vinnux
  • Registratie: Maart 2001
  • Niet online
In talen als Java, C#, C++, etc heb heb je het volgende statement.
code:
1
2
3
4
5
6
7
8
9
for ( i = 0; i < 10; i++) {
  if (i == 5 and blub == true){
    continue
  }
 
  if (i * x == mooiweer){
     blub = true
  }
}


Het gaat hier om het Continue statement. Dit statement maakt het mogelijk om in je loop gelijk naar boven te springen, zonder de code die eronder staat uit te voeren.

Is er zo een statement in ASP VB.

  • Kama
  • Registratie: Mei 2002
  • Laatst online: 10:29

Kama

Aritifical Intelligenticus

Ehmm... 'next' ?

Niels


  • vinnux
  • Registratie: Maart 2001
  • Niet online
Microsoft VBScript compilation error '800a041f'

Unexpected 'Next'

  • vogeltje
  • Registratie: December 2001
  • Laatst online: 10-08-2025
Resume Next?

binnenkort een hele dikke casemod :P


  • vinnux
  • Registratie: Maart 2001
  • Niet online
Microsoft VBScript compilation error '800a0400'

Expected statement

  • _js_
  • Registratie: Oktober 2002
  • Laatst online: 13-01 07:19
Gebruik een label vlak voor de next.

[ Voor 87% gewijzigd door _js_ op 11-11-2003 12:59 . Reden: vraag slecht gelezen ]


  • vogeltje
  • Registratie: December 2001
  • Laatst online: 10-08-2025
probeer anders eens met een GoTo naar een Label

aah, idd exit for

[ Voor 19% gewijzigd door vogeltje op 11-11-2003 12:58 ]

binnenkort een hele dikke casemod :P


  • henkleerssen
  • Registratie: December 2000
  • Niet online

henkleerssen

Your life is as you narrate it

vogeltje schreef op 11 november 2003 @ 12:58:
probeer anders eens met een GoTo naar een Label
precies.. dus:

Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Sub test()


    For i = 1 To 10
Nice:
        If i = 5 Then
            i = i + 1
            GoTo Nice
        Else
            Debug.Print i
        End If
    Next

End Sub

En ik moet zeggen.. het is aardig slordig zo.. maar goed..

  • Jaspertje
  • Registratie: September 2001
  • Laatst online: 12-08 16:04

Jaspertje

Max & Milo.. lief

Exit for ga je de loop uit, dan ga je niet naar de volgende toch??

  • henkleerssen
  • Registratie: December 2000
  • Niet online

henkleerssen

Your life is as you narrate it

Exit for is het niet.. want dan gaat die dus niet meer verder.. das niet wat vgouw wilt..

  • Phenomenon
  • Registratie: December 2000
  • Laatst online: 01-04 13:18
Kan je niet gewoon next I gebruiken?

  • henkleerssen
  • Registratie: December 2000
  • Niet online

henkleerssen

Your life is as you narrate it

Supervisor schreef op 11 november 2003 @ 13:09:
Kan je niet gewoon next I gebruiken?
nee..stom he..

  • Kama
  • Registratie: Mei 2002
  • Laatst online: 10:29

Kama

Aritifical Intelligenticus

Ik heb even op MSDN gekeken, het lijkt erop dat dit niet kan. Next betekent einde van de 'scope'

Wellicht is dit een optie:

code:
1
2
3
4
5
  For i = 1 To 10
    If not (condition) Then
      Debug.Print i
    End If
  Next


Maw: Keer de conditie om, of maak een

code:
1
2
3
4
5
if (condition) then 
  ' Do nothing.
else 
  Debug.Print i
end if

[ Voor 6% gewijzigd door Kama op 11-11-2003 13:15 ]

Niels


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 17-08 23:56

Janoz

Moderator Devschuur®

!litemod

Ik vind de TS code zowiezo al redelijk ranzig. IMHO is deze code veel duidelijker:
code:
1
2
3
4
5
6
7
for ( i = 0; i < 10; i++) {
  if (i != 5 or blub != true){
    if (i * x == mooiweer){
       blub = true
    }
  }
}


Door het inspringen zie je al dat bepaalde code wel of neit wordt uitgevoerd en niet omdat je toevallig ergens bovenaan continue ziet staan. Het wordt zelfs alleen maar onduidelijker waneer de continue in het midden staat. Dan zul je echt de code door moeten gaan lezen om de 'flow' te zien ipv dat je het aan het inspringen ziet.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • vinnux
  • Registratie: Maart 2001
  • Niet online
Janoz schreef op 11 november 2003 @ 13:17:
Ik vind de TS code zowiezo al redelijk ranzig. IMHO is deze code veel duidelijker:
code:
1
2
3
4
5
6
7
for ( i = 0; i < 10; i++) {
  if (i != 5 or blub != true){
    if (i * x == mooiweer){
       blub = true
    }
  }
}


Door het inspringen zie je al dat bepaalde code wel of neit wordt uitgevoerd en niet omdat je toevallig ergens bovenaan continue ziet staan. Het wordt zelfs alleen maar onduidelijker waneer de continue in het midden staat. Dan zul je echt de code door moeten gaan lezen om de 'flow' te zien ipv dat je het aan het inspringen ziet.
Mee eens dat het een beetje ranzig is, maar als je 60 condities hebt waar je op moet checken vinde ik deze constructie ook niet super.

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 17-08 23:56

Janoz

Moderator Devschuur®

!litemod

Dan nog. Je wint er absoluut geen ruimte mee aangezien je nog steeds de 60 condities moet checken.
Je zou ook
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
for (;;)
  if (!conditie1){
    //actie als conditie 1 faalt
  } else if (!conditie2){
    //actie als conditie 2 faalt
  } else if (!conditie3){
  .
  .
  .
  } else if (!conditie60){
    //actie als conditie 60 faalt
  } else {
     //actie die zou moeten worden uitgevoerd
  }
 }

kunnen doen, en dat heeft exact dezelfde hoeveelheid code. Als elke conditie niet zijn eigen foutafhandeling verwacht kun je zelfs nog:

code:
1
2
3
4
5
6
7
8
9
10
11
12
for (;;)
  if ((!conditie1) || (!conditie2) ||
      (!conditie3) || (!conditie4) ||
  .
  .
  .
      (!conditie60)) {
    //actie bij falen condities
  } else {
     //actie die zou moeten worden uitgevoerd
  }
 }

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'

Pagina: 1