Declaración de bifurcación if en Golang

GolangGolangBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

Al crear un plan de tareas pendientes, si una tarea aún no se ha completado, se agregará a la lista de tareas pendientes, y si se ha completado, se moverá a la lista de elementos completados.

En el mundo de la programación, también necesitamos cambiar la dirección del programa según diferentes requisitos. A continuación, aprendamos sobre la declaración de bifurcación if, que es una declaración de control de flujo.

Puntos de conocimiento:

  • Declaración if
  • Declaración if-else
  • Declaración else-if
  • Reglas de formato

Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL go(("Golang")) -.-> go/BasicsGroup(["Basics"]) go(("Golang")) -.-> go/FunctionsandControlFlowGroup(["Functions and Control Flow"]) go(("Golang")) -.-> go/AdvancedTopicsGroup(["Advanced Topics"]) go/BasicsGroup -.-> go/values("Values") go/BasicsGroup -.-> go/variables("Variables") go/FunctionsandControlFlowGroup -.-> go/if_else("If Else") go/FunctionsandControlFlowGroup -.-> go/switch("Switch") go/AdvancedTopicsGroup -.-> go/time("Time") subgraph Lab Skills go/values -.-> lab-149071{{"Declaración de bifurcación if en Golang"}} go/variables -.-> lab-149071{{"Declaración de bifurcación if en Golang"}} go/if_else -.-> lab-149071{{"Declaración de bifurcación if en Golang"}} go/switch -.-> lab-149071{{"Declaración de bifurcación if en Golang"}} go/time -.-> lab-149071{{"Declaración de bifurcación if en Golang"}} end

Declaración if

La declaración de bifurcación más comúnmente utilizada es la declaración if, que verifica si una condición preestablecida es verdadera y luego decide si ejecutar el bloque de código. Aquí está su formato:

if condition {
    code block
}

Cuando la condición es verdadera, el programa ejecuta el bloque de código; de lo contrario, omite el bloque de código.

Echemos un vistazo a un ejemplo práctico. Crea un nuevo archivo llamado if.go y escribe el siguiente código en él:

cd ~/project
touch if.go
package main

import (
    "fmt"
)

func main() {
    var num = 40
    // Obtener el resto de la división de dos números usando %
    if num % 2 == 0 {
        fmt.Println(num, "is even")
    }
}

Ejecuta el programa:

go run if.go

El resultado es el siguiente:

40 is even

En este programa, primero declaramos una variable entera num. Luego, en la declaración if, usamos el operador módulo % para obtener el resto de la división de num entre 2, y usamos el operador de igualdad == para verificar si el resto es igual a 0. Si lo es, se ejecuta el bloque de código y se muestra que el número es par.

Declaración if else

¿Qué debemos hacer si queremos mostrar algo diferente cuando la condición en la declaración if no se cumple? En este caso, podemos usar la declaración if else. Si la condición en la declaración if es verdadera, se ejecuta el bloque de código de la declaración if; de lo contrario, se ejecuta el bloque de código de la declaración else.

El formato de la declaración if else es similar al de la declaración if:

if condition {
    code
} else {
    code
}

Veamos un ejemplo. El siguiente programa mostrará si hoy es un día laborable o un fin de semana:

cd ~/project
touch if_else.go
package main

import (
    "fmt"
    "time"
)

func main() {
    // Obtener la hora actual
    t := time.Now()

    // Verificar si es sábado o domingo
    if t.Weekday() == time.Saturday || t.Weekday() == time.Sunday {
        fmt.Println("Today is:", t.Weekday(), "weekend")
    } else {
        fmt.Println("Today is:", t.Weekday(), "weekday")
    }
}

Ejecuta el programa:

go run if_else.go

El resultado es el siguiente:

Today is: Monday weekday

Usamos el paquete time de la biblioteca estándar para obtener la hora actual. Luego, al compararla con sábado y domingo, si es fin de semana, se ejecuta el bloque de código de la declaración if; de lo contrario, se ejecuta el bloque de código de la declaración else.

Declaración else if

Además de verificar una sola condición, también podemos usar la declaración else if para verificar múltiples condiciones.

Su formato es el siguiente:

if condition {
    code
} else if condition {
    code
} else {
    code
}

En una declaración de bifurcación, puedes tener múltiples declaraciones else if, pero solo puedes tener una declaración if y una declaración else. La declaración else if debe estar posicionada entre las declaraciones if y else.

Reescribamos el programa de la sección "if else" para mostrar el día de la semana:

Actualiza el archivo if_else.go:

package main

import (
    "fmt"
    "time"
)

func main() {
    today := time.Now().Weekday()

    if today == time.Monday {
        fmt.Println("Today is Monday")
    } else if today == time.Tuesday {
        fmt.Println("Today is Tuesday")
    } else if today == time.Wednesday {
        fmt.Println("Today is Wednesday")
    } else if today == time.Thursday {
        fmt.Println("Today is Thursday")
    } else if today == time.Friday {
        fmt.Println("Today is Friday")
    } else if today == time.Saturday {
        fmt.Println("Today is Saturday")
    } else {
        fmt.Println("Today is Sunday")
    }
}

Ejecuta el programa:

go run if_else.go

Después de ejecutarlo, el resultado es el siguiente:

Today is Monday

En el programa anterior, primero usamos time.Now() para obtener la hora actual y luego obtenemos el día de la semana a partir de la hora actual. En este programa, estas dos líneas de código se combinan en una sola línea. Después de obtener el día de la semana, lo compara con la declaración de bifurcación para mostrar el día de la semana.

Declaración de inicialización en la declaración if

En el aprendizaje previo, la declaración if tenía solo un parámetro, la condición:

if condition {
    code
}

El parámetro completo también incluye una declaración de inicialización, que es un parámetro opcional en Go. Por lo general, se utiliza para la declaración e inicialización de variables temporales, y la declaración de inicialización se separa con un punto y coma cuando se utiliza. La sintaxis es la siguiente:

if initialization statement; condition {
    code
}

Hemos reescrito el programa de la sección "if else". Hemos movido la declaración de la variable a la declaración if como una declaración de inicialización para acortar el código:

package main

import (
    "fmt"
    "time"
)

func main() {
    if t := time.Now(); t.Weekday() == time.Saturday || t.Weekday() == time.Sunday {
        fmt.Println("Today is:", t.Weekday(), "weekend, studying and recharging")
    } else {
        fmt.Println("Today is:", t.Weekday(), "also studying hard")
    }
}

Ejecuta el programa:

go run if_else.go

Se puede ver que se ejecuta correctamente:

Today is: Monday also studying hard

Nota: El alcance de la variable declarada en la declaración de inicialización solo está dentro del bloque if.

Problemas de formato

No sé si ustedes, los entusiastas de Go, han notado los requisitos de formato de Go al aprender las declaraciones if.

  • En Go, las palabras clave if, else y else if deben estar en la misma línea que la llave derecha }.
  • Las palabras clave else if y else también deben estar en la misma línea que la llave izquierda anterior, de lo contrario, el compilador informará un error de sintaxis en tiempo de compilación.

Si ejecutamos el programa después de mover la declaración else a la siguiente línea, el compilador informará un error de sintaxis.

Resumen

En este laboratorio, hemos explicado la declaración de bifurcación if, incluyendo los siguientes puntos principales:

  • En un bloque de código de bifurcación if, puede haber múltiples declaraciones else if, pero solo puede haber una declaración if y una declaración else.
  • La declaración else if debe colocarse entre las declaraciones if y else.
  • Puedes usar una declaración de inicialización en la declaración if para acortar el código.
  • El compilador exige que las palabras clave if, else y else if estén en la misma línea que las llaves.