125 votes

rupture / sortie imbriquée dans vb.net

Comment j’obtenir d’imbriqués pour ou boucle en vb.net ?

J’ai essayé d’utiliser la sortie mais il a sauté ou breakée seul pour boucle seulement.

Comment puis-je faire pour les éléments suivants :

209voto

Heinzi Points 66519

Malheureusement, il n'y a pas d' exit two levels of for déclaration, mais il ya quelques solutions de contournement pour faire ce que vous voulez:

  • Goto. En général, l'utilisation de goto est considéré comme une mauvaise pratique (et à juste titre), mais en utilisant goto que pour une mise en avant de sauter de l'structuré instructions de contrôle est généralement considéré comme OK, surtout si l'alternative est d'avoir plus de code compliqué.

    For Each item In itemList
        For Each item1 In itemList1
            If item1.Text = "bla bla bla" Then
                Goto end_of_for
            End If
        Next
    Next
    
    end_of_for:
    
  • Factice extérieure bloc

    Do
        For Each item In itemList
            For Each item1 In itemList1
                If item1.Text = "bla bla bla" Then
                    Exit Do
                End If
            Next
        Next
    Loop While False
    

    ou

    Try
        For Each item In itemlist
            For Each item1 In itemlist1
                If item1 = "bla bla bla" Then
                    Exit Try
                End If
            Next
        Next
    Finally
    End Try
    
  • Séparée de la fonction: Mettre les boucles à l'intérieur d'une fonction distincte, qui peut être clôturée avec return. Cela peut vous obliger à passer beaucoup de paramètres, mais, en fonction du nombre de variables locales que vous utilisez à l'intérieur de la boucle. Une autre solution serait de mettre le bloc dans un multi-ligne lambda, car cela va créer une fermeture variables locales.

  • Variable booléenne: Cela pourrait rendre votre code un peu moins lisible, en fonction du nombre de couches de boucles imbriquées, vous avez:

    Dim done = False
    
    For Each item In itemList
        For Each item1 In itemList1
            If item1.Text = "bla bla bla" Then
                done = True
                Exit For
            End If
        Next
        If done Then Exit For
    Next
    

17voto

Mettre les boucles en une sous-routine et appel``

3voto

Cesar Points 332

J’ai expérimenté avec taper « exit » pour quelques temps et remarqué cela a fonctionné et VB n’a pas m’engueuler. C’est une option, que je suppose, mais il a juste regardé mauvais.

Je pense que la meilleure option est similaire à celle partagée par Tobias. Simplement placer votre code dans la fonction et le faire revenir quand vous voulez sortir de vos boucles. Semble plus propre aussi.

3voto

Andrew Thomas Points 639

Faire l’extérieur un certain temps en boucle boucle et « Exit While » dans le cas énoncé.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X