Условные операторы

Условные операторы позволяют нам управлять потоком выполнения нашей программы. Если бы операторы кода выполнялись только один за другим до конца функции, функциональность была бы очень ограниченной.

Когда-то давно были популярны диаграммы потока (может быть, они все еще актуальны?), где мы могли проектировать поток нашей программы с помощью узлов принятия решений для определения ветвления. Обычно мы проверяли условие на истинность или ложность и выбирали соответствующую ветку.

В игре мы, вероятно, будем иметь простые условия истинности/ложности или более сложное состояние с несколькими возможностями.

Основной условный оператор использует синтаксис if / else / elif. Мы используем отступы для определения уровней вложенности в структуре if. Вот несколько примеров кода на GDScript:

extends Node2D

func _ready():
	var n = 6
	
	# Inline 'if' statement
	if n == 6: print("n is equal to six")
	
	n = 4
	# Regular 'if' statement 
	if n == 4:
		print("n is equal to four")
	
	# 'else/if' statement
	if n == 6:
		print("n is equal to six")
	else:
		print("n is not equal to six")
	
	# Messy indented 'else/if' statement
	if n == 6:
		print("n is equal to six")
	else:
		if n < 6:
			print("n is less than six")
		else:
			print("n is greater than six")
	
	n = 8
	# Tidier 'else/if' statement using 'elif'
	if n == 6:
		print("n is equal to six")
	elif n < 6:
		print("n is less than six")
	else:
        print("n is greater than six")

В представленном коде вы видите, как отступы могут стать запутанными, когда есть более одного теста в операторе if, поэтому для упорядочивания кода можно использовать elif.

Оператор Match

В других языках программирования обычно предоставляется оператор switch, позволяющий условному ветвлению на основе нескольких случаев тестового значения. GDScript предоставляет мощный альтернативный оператор Match.

Тернарный if

Это удобное однострочное выражение для присвоения значения переменной в зависимости от условия.

var x = [значение] if [выражение] else [значение]
var paid = false
var strength = 9.9 if paid else 1.0
print("Strength = ", strength)

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

пять × 2 =

Прокрутить вверх