Question simple sur les boucles : aller à l'élément suivant..

Résolu
TrafMaxime Messages postés 288 Date d'inscription mercredi 4 mai 2005 Statut Membre Dernière intervention 26 janvier 2012 - 30 avril 2008 à 11:37
NHenry Messages postés 15032 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 26 janvier 2023 - 6 mai 2008 à 16:23
Bon je dois pas être bien reveillé ce matin, j'ai un trou.. je le trouve ni dans les bouquins, ni sur le net, c'est surement trop basique pour avoir besoin de le préciser mais voilà le topo :

je suis dans une boucle, et je voudrais passer à l'élément suivant sans executer la fin de la boucle, en cas d'erreur dans un 'try.. catch'

j'ai essaye de mettre un deuxième 'next' (<-quel con :)), mais c'est ça l'idée (pour ceux qui n'auraient pas compris)..
dans le vieux 'c', c'était quelque chose comme 'continue'..

allez les gars, ça doit pas vous couter grand chose,
merci

.Maytheforcebewithyou.Maxime.

16 réponses

NHenry Messages postés 15032 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 26 janvier 2023 156
6 mai 2008 à 16:23
Bonjour

En VB 2005 Pro, aucun pb.

Le fer à souder a besoin d'une panne pour fonctionner.
VB (6, .NET1&2), C++, C#.Net1
Mon site
3
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
30 avril 2008 à 11:41
mets un Goto ^^
0
TrafMaxime Messages postés 288 Date d'inscription mercredi 4 mai 2005 Statut Membre Dernière intervention 26 janvier 2012 1
30 avril 2008 à 11:51
serieux y'a pas mieux ??

un truc tout frais tout bon de notre .net fabuleux

si jamais y'a pas mieux j'accepte plus tard cette soluce mais bonjour le bricolage, autant mettre un 'if' apres mon try catch..

.Maytheforcebewithyou.Maxime.
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
30 avril 2008 à 11:58
a ta guise, je sais que ma réponse initialise lancera tot ou tard une polémique...

mais une fois compilé, des JMP y'a que ca... même ton beau If en deviendra un ^^
autant éviter de perdre du temps avec ce genre de choses..

donne nun nom sympa a ton étiquette (genre GetNext, ou Skip, ...) et voilà ^^

(en même temps, je ne code que très peu en .Net, donc)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
NHenry Messages postés 15032 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 26 janvier 2023 156
30 avril 2008 à 15:28
Bonjour

Un "Exit for" ou "Continue For" ne te convient pas ?

Et concernant les GOTO en .NET, je reste sur ma position en disant que dans l'immense majorité des cas, on peut éviter de faire du code spagetti  .

Le fer à souder a besoin d'une panne pour fonctionner.
VB (6, .NET1&2), C++, C#.Net1
Mon site
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
30 avril 2008 à 15:37
Continue For, je savais pas que ca existais ^^

pour les Goto, on peux toujours mettre des If a gogo...
0
TrafMaxime Messages postés 288 Date d'inscription mercredi 4 mai 2005 Statut Membre Dernière intervention 26 janvier 2012 1
30 avril 2008 à 16:25
et non.. 'continue for' n'existe pas en .net (a moins qu'il faille appeler une bibliothèque particulière..) et 'exit for' equivaut à un exit : ça sort de la boucle (moi je veux aller a l'element suivant.. :)

donc merci pour vos idées... ça me parait bizarre que cette formule magique precise n'existe pas..

pour l'instant je vis avec un 'if' des familles derrieres mon catch..
longue vie au bricolage

.Maytheforcebewithyou.Maxime.
0
NHenry Messages postés 15032 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 26 janvier 2023 156
30 avril 2008 à 16:35
Bonjour

Continue fonctionne, et c'est une instruction VB.

Tape "continue" sur ton EDI, puis utilises la touche F1.

Juste pour info en quel version de .NET es-tu ?

Le fer à souder a besoin d'une panne pour fonctionner.
VB (6, .NET1&2), C++, C#.Net1
Mon site
0
TrafMaxime Messages postés 288 Date d'inscription mercredi 4 mai 2005 Statut Membre Dernière intervention 26 janvier 2012 1
30 avril 2008 à 16:52
visualstudio 2002 et effectivement, 'continue' devrait être bon.. mais pourquoi il veut pas me le prendre mon compiler ?? pourquoi il me le souligne ???

apparamment y'aurait des conflits avec des blocs 'finally', je l'ai essayé dans un cas basique et rien y fait : il me le reconnait pas..

.Maytheforcebewithyou.Maxime.
0
NHenry Messages postés 15032 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 26 janvier 2023 156
30 avril 2008 à 17:06
Bonjour

2002 connais pas, mais à partir de 2003, pas de pb.

Et hors d'un bloc Finally ?

Le fer à souder a besoin d'une panne pour fonctionner.
VB (6, .NET1&2), C++, C#.Net1
Mon site
0
TrafMaxime Messages postés 288 Date d'inscription mercredi 4 mai 2005 Statut Membre Dernière intervention 26 janvier 2012 1
30 avril 2008 à 17:19
Bah c'est dans l'aide officielle, dans la description du 'continue' que j'ai lu que c'était pas bon dans un bloc 'finally', bon moi j'ai pas de bloc finally mais je me suis dis que peut-être c'était mon 'try catch' qui lui plaisait pas..
 j'ai donc fait un truc bidon derriere un bouton et ça lui plait toujours pas..

.Maytheforcebewithyou.Maxime.
0
NHenry Messages postés 15032 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 26 janvier 2023 156
6 mai 2008 à 14:15
Bonjour

Peux-tu me montrer le code que tu utilises et le message qu'il te retourne pour te dire que c'est pas bon ?

Le fer à souder a besoin d'une panne pour fonctionner.
VB (6, .NET1&2), C++, C#.Net1
Mon site
0
TrafMaxime Messages postés 288 Date d'inscription mercredi 4 mai 2005 Statut Membre Dernière intervention 26 janvier 2012 1
6 mai 2008 à 14:29
Avec plaisir : (voila le plan test de l'expression 'continue' avec visual studio 2002) :

 Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
        Dim a, b, c, d As Integer
        b = 0
        c = 0
        For a = 0 To 5
            b = b + 1
            d = c
            If b = 3 Then
                b = 0
                continue()
            End If
            c = c + 1
        Next
    End Sub

Et en fait j'ai pas de message d'erreur, il ne reconnait pas le 'continue', souligné et me le qualifie comme 'non déclaré' si je tente de compiler quand même..

Peut-être faut-il importer une liste de classe spécifique au début ?
Mais c'est pas précisé dans l'aide..
.Maytheforcebewithyou.Maxime.
0
NHenry Messages postés 15032 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 26 janvier 2023 156
6 mai 2008 à 14:35
Bonjour

Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
        Dim a, b, c, d As Integer
        b = 0
        c = 0
        For a = 0 To 5
            b = b + 1
            d = c
            If b = 3 Then
                b = 0
                continue For
            End If
            c = c + 1
        Next
    End Sub

Le fer à souder a besoin d'une panne pour fonctionner.
VB (6, .NET1&2), C++, C#.Net1
Mon site
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
6 mai 2008 à 14:36
un Else resoudrait tout :

Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
Dim a, b, c, d As Integer
For a = 0 To 5
b = b + 1
d = c
If b = 3 Then
b = 0
Else
c = c + 1
End If
Next
End Sub
0
TrafMaxime Messages postés 288 Date d'inscription mercredi 4 mai 2005 Statut Membre Dernière intervention 26 janvier 2012 1
6 mai 2008 à 15:02
Oui c'est sur qu'un else resout tout :) j'ai d'ailleur depuis contourné le problème..
Mais il doit bien exister un mot-clé correspondant au continue, même dans ma version (officielle pourtant :) de vb.net..

continue for n'est pas reconnu non plus, c'est très sympa NHenry, mais il marche chez vous ? avec quelle version ?
.Maytheforcebewithyou.Maxime.
0
Rejoignez-nous