Saltar al contenido

¿Cómo salir de los bucles anidados en Go?

Este team de trabajo ha estado mucho tiempo buscando para darle soluciones a tus preguntas, te dejamos la resolución por esto deseamos resultarte de mucha apoyo.

Solución:

Usar break label para salir de cualquier bucle tan anidado como desee. Solo pon la etiqueta antes de el for bucle del que quieres salir. Esto es bastante similar al código que hace un goto label pero creo que es un poco más elegante, pero supongo que es cuestión de opinión.

package main

func main() 
    out:
    for i := 0; i < 10; i++ 
        for j := 0; j < 10; j++ 
            if i + j == 20 
                break out
            
        
    

Más detalles: https://www.ardanlabs.com/blog/2013/11/label-breaks-in-go.html

función de uso

package main

import (
    "fmt"
)

func getWord() string 
    word := ""
    for word != "DC" 
        for _, i := range "ABCDE" 
            for _, j := range "ABCDE" 
                word = string(i) + string(j)
                fmt.Println(word)
                if word == "DC" 
                    return word
                
            
        
    
    return word


func main()
    word := getWord()

Editar: gracias a @peterSO que señala algunos errores en los detalles y proporciona este campo de juegos https://play.golang.org/p/udcJptBW9pQ

¿Qué tal goto?

package main

import (
    "fmt"
)

func main() 

    word := ""

        for _, i := range "ABCDE" 
            for _, j := range "ABCDE" 
                word = string(i) + string(j)
                fmt.Println(word)
                if word == "DC" 
                    goto Exit
                
            
        
    Exit: // More logic here that needs to be executed

Sección de Reseñas y Valoraciones

Si eres capaz, puedes dejar un ensayo acerca de qué le añadirías a esta noticia.

¡Haz clic para puntuar esta entrada!
(Votos: 4 Promedio: 4.3)


Tags : / /

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *