AnyCompiler

Control de Flujo

if y else en Go funcionan como cabría esperar, con una pequeña diferencia respecto a muchos otros lenguajes: la condición nunca necesita paréntesis, aunque las llaves siempre son obligatorias, incluso para una sola sentencia.

package main

import "fmt"

func main() {
	age := 20
	if age >= 18 {
		fmt.Println("You are an adult")
	} else {
		fmt.Println("You are a minor")
	}
}
Output
You are an adult

for es la única palabra clave de bucle de Go

Go no tiene while ni do-while — for cubre toda forma de bucle. Con las tres cláusulas, es un bucle de conteo clásico; quita las cláusulas de inicialización y de incremento y deja solo una condición, y se comporta exactamente como un bucle while en cualquier otro lenguaje.

package main

import "fmt"

func main() {
	for i := 0; i < 3; i++ {
		fmt.Println("counting up:", i)
	}

	n := 3
	for n > 0 {
		fmt.Println("counting down:", n)
		n--
	}
}
Output
counting up: 0
counting up: 1
counting up: 2
counting down: 3
counting down: 2
counting down: 1

Siguiente: arrays y slices — los tipos de colección de tamaño fijo y creciente de Go.

Practice exercise

Define una variable score := 73. Imprime "pass" si score es 60 o más, de lo contrario imprime "fail".