Switch in GDScript
Our first program will demonstrate the usage of switch statements, which express conditionals across many branches.
Basic switch Statement
Here’s a basic switch example in GDScript:
extends Node
func _ready():
    var i = 2
    print("Write ", i, " as ")
    match i:
        1:
            print("one")
        2:
            print("two")
        3:
            print("three")Multiple Expressions in case and default case
You can use commas to separate multiple expressions in the same case statement. We use the optional default case in this example as well.
extends Node
func _ready():
    match OS.get_date().weekday:
        6, 7:
            print("It's the weekend")
        _:
            print("It's a weekday")switch Without an Expression
match without an expression is an alternate way to express if/else logic. Here we also show how the case expressions can be non-constants.
extends Node
func _ready():
    var t = OS.get_time()
    match true:
        t.hour < 12:
            print("It's before noon")
        _:
            print("It's after noon")Type switch
A type match compares types instead of values. You can use this to discover the type of a value. In this example, the variable t will have the type corresponding to its clause.
extends Node
func _ready():
    func what_am_i(i):
        match i:
            true:
                print("I'm a bool")
            1:
                print("I'm an int")
            _:
                print("Don't know type %s" % typeof(i))
    what_am_i(true)
    what_am_i(1)
    what_am_i("hey")Running the Code
To run the program, put the code in a GDScript file, attach it to a Node, and run the scene.
$ godot -s my_script.gdOutputs:
Write 2 as two
It's a weekday
It's after noon
I'm a bool
I'm an int
Don't know type stringIn this example, we’ve learned how to use switch (or match in GDScript) to handle multiple conditional branches efficiently.