Estructura de datos y algoritmo (implementación de Golang) (3) Una introducción simple a la declaración de control de flujo de Golang

Declaración de control de flujo

En los lenguajes de programación de computadoras, las declaraciones de control de flujo son muy importantes, ya que le permiten a la máquina saber cuándo hacer algo y hacerlo varias veces. Hay principalmente declaraciones condicionales y en bucle.

GolangSolo hay un tipo de bucle :, forsolo un tipo de juicio :, ify hay una switchdeclaración de selección condicional especial .

Primero, la declaración condicional

Por ejemplo:

    // 判断语句
    if a > 0 {
        fmt.Println("a>0")
    } else {
        fmt.Println("a<=0")
    }

Cuando a > 0la impresión a>0o impresión a<=0. Las condiciones a > 0no requieren paréntesis.

La declaración condicional indica qué hacer, de lo contrario, qué hacer.

Varias formas de juicio son:

if a > 0{

}

Sólo if.

if a > 0{

}else{

}

Los hay iftambién else.

if a > 0{

}else if a == 0 {

}else{

}

Se puede mezclar en el medio else if.

Si hay demasiadas condiciones intermedias, puede usar switchdeclaraciones condicionales:

    num := 4

    switch num {
    case 3:
        fmt.Println(3)
    case 4:
        fmt.Println(4)
    case 5:
        fmt.Println(5)
    default:
        fmt.Println("not found")

Dichas declaraciones serán casejuzgadas una por una. Si una casecumple con la condición, ingrese la caseinstrucción de ejecución, de lo contrario ingrese default.

Lo anterior num := 4ingresará case 4, imprime el número 4 y finaliza. Si lo hace num := 5, imprimirá el número 5 y finalizará. Si lo hace num := 8, se imprimirá la cadena no encontrada.

En segundo lugar, la declaración de bucle

Declaración de bucle:

    // 循环语句
    for i := 9; i <= 10; i++ {
        fmt.Printf("i=%d\n", i)
    }

Entre ellas se iencuentran las variables locales. El valor se asigna antes del ciclo por primera vez 9, y luego se juzga si se cumple la i<=10condición. Si se cumple , se agrega la impresión del ciclo 1, y se agregará después de cada ciclo , es decir i++, continúe juzgando si se cumple la condición.

El formulario es:

    for 起始状态; 进入循环需满足的条件; 每次循环后执行的指令 {
    }

También puedes recorrer sin parar:

    // 死循环语句
    a = 0
    for {
        if a >= 10 {
            fmt.Println("out")
            // 退出循环
            break
        }

        a = a + 1
        if a > 5 {
            continue
        } 

        fmt.Println(a)
    }

bucle infinito directamente for {}, sin necesidad de añadir condición de la espalda, y luego, cuando a>=10el tiempo fuera del circuito se puede utilizar breakpara indicar a saltar for {}, para a > 5que no queremos para imprimir los valores, puede utilizar continueomitir la frase siguiente fmt.Println(a), una vez más avanzar en la circulación.

切片Y 字典se puede utilizar para desplazarse a través de los datos:


    e := []int64{1, 2, 3}                 // slice
    f := map[string]int64{"a": 3, "b": 4} // map

    // 循环切片
    for k, v := range e {
        fmt.Println(k, v)
    }

    // 循环map
    for k, v := range f {
        fmt.Println(k, v)
    }

El resultado del recorrido del segmento es: subíndice de datos, datos, y el resultado del recorrido del diccionario: la clave de los datos, el valor de los datos:

0 1
1 2
2 3
3 3

a 3
b 4
f 5

Entrada de artículo de serie

Soy la estrella Chen, bienvenido he escrito personalmente estructuras de datos y algoritmos (Golang lograr) , comenzando en el artículo para leer más amigable GitBook .

13 artículos originales publicados · Me gusta0 · Visitas 96

Supongo que te gusta

Origin blog.csdn.net/m0_46803965/article/details/105563270
Recomendado
Clasificación