Menu
CoddyTech

Kiểm tra thành viên

Thuộc phần Logic và luồng chương trình trong hành trình GDScript của Coddy. Bài học 10 trên 78.

Bạn đã biết cách kiểm tra phần tử có nằm trong hay không bằng in và not in: "cat" in pets tìm một phần tử trong mảng, còn "ell" in "hello" tìm một đoạn văn bản bên trong chuỗi. Còn có ba trường hợp khác thường xuyên xuất hiện.

Với từ điển, in chỉ kiểm tra các khóa. Để tìm giá trị, hãy kiểm tra mảng mà values() trả về:

var grades := {"Alice": 85, "Bob": 90}
print("Alice" in grades)
print(90 in grades)
print(90 in grades.values())
true
false
true

Toán tử kiểm tra phần tử cũng so sánh kiểu dữ liệu. Văn bản đọc bằng OS.read_string_from_stdin() là một chuỗi, còn chuỗi "90" không phải là số nguyên 90:

var scores := [70, 90]
print("90" in scores)
print(int("90") in scores)
false
true

Một mảng hằng số gồm các giá trị hợp lệ kết hợp với in thay thế cho chuỗi dài các toán tử or, và cách này cũng dùng được trong điều kiện bảo vệ:

const DIRECTIONS = ["north", "south", "east", "west"]
var dir := "west"
match dir:
	var d when d in DIRECTIONS:
		print("Going ", d)
	_:
		print("You cannot go there")
Going west
challenge icon

Thử thách

Dễ

Chương trình có một mảng names chứa tên học sinh trong một lớp và một từ điển grades chứa tên những học sinh đã có điểm. Chương trình đọc tên học sinh vào student và điểm vào grade (dưới dạng văn bản).

In ra ba dòng:

  1. NAME is in the class. hoặc NAME is not in the class., kiểm tra names
  2. NAME has a grade. hoặc NAME has no grade., kiểm tra các khóa của grades
  3. Someone scored GRADE. hoặc Nobody scored GRADE., kiểm tra các giá trị của grades

Thay NAME và GRADE bằng dữ liệu đầu vào. Với dữ liệu đầu vào Dana và 85, đầu ra là:

Dana is in the class.
Dana has no grade.
Someone scored 85.

Tự làm thử

extends Node

func _ready():
	var names := ["Alice", "Bob", "Charlie", "Dana"]
	var grades := {"Alice": 85, "Bob": 90, "Charlie": 78}
	var student := OS.read_string_from_stdin()
	var grade := OS.read_string_from_stdin()
	# In ra ba dòng
quiz iconTự kiểm tra

Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.

Tất cả bài học trong Logic và luồng chương trình

Tự luyện tập: Trình biên dịch GDScript online