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
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,elseyelse ifdeben estar en la misma línea que la llave derecha}. - Las palabras clave
else ifyelsetambié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 declaracioneselse if, pero solo puede haber una declaraciónify una declaraciónelse. - La declaración
else ifdebe colocarse entre las declaracionesifyelse. - Puedes usar una declaración de inicialización en la declaración
ifpara acortar el código. - El compilador exige que las palabras clave
if,elseyelse ifestén en la misma línea que las llaves.



