Koruma Koşulları
Coddy'nin GDScript Journey'sinin Mantık ve Akış bölümünün bir parçası. Ders 68 / 78.
Bir işlevin birkaç denetime ihtiyacı olduğunda, bir if ifadesini diğerinin içine yerleştirmek asıl işi giderek daha derine taşır:
func buy(gold: int, price: int) -> String:
if price > 0:
if gold >= price:
return "Bought! %d gold left" % (gold - price)
else:
return "Not enough gold"
else:
return "Invalid price"Koruma koşulu bunu tersine çevirir. Fonksiyonun en başında geçersiz bir durumu kontrol eder ve return ile hemen çıkar. Koruma koşullarından sonraki kod yalnızca geçerli değerlerle çalışır ve iç içe geçirmeye gerek duymaz:
func buy(gold: int, price: int) -> String:
if price <= 0:
return "Invalid price"
if gold < price:
return "Not enough gold"
return "Bought! %d gold left" % (gold - price)buy(50, 30), Bought! 20 gold left döndürür; buy(10, 30), Not enough gold döndürür ve buy(50, 0), Invalid price döndürür.
Koşulların sırası önemlidir: Bir satırı koruyan koşul, o satırdan önce gelmelidir. Sayıyı kullanmadan önce metni is_valid_int() ile kontrol et ve bölme yapmadan önce sıfır olup olmadığını kontrol et:
func share(coins: int, players: int) -> int:
if players <= 0:
return 0
return coins / players-> void işlevinde guard, tek başına kullanılan return ifadesidir. Döngü içinde continue, tek bir öğe için guard görevi görür: geçersiz bir öğeyi atlar ve döngü sonraki öğeyle devam eder.
Görev
Kolayprocess_data fonksiyonunu yaz. Bir dize olan text parametresini alır ve bir dize döndürür:
textbir tam sayı değilseInput must be a number!döndür- Sayı
0iseCannot divide by zero!döndür - Aksi takdirde,
100.0sayısını bu sayıya böl ve sonucu iki ondalık basamakla döndür
Örneğin, process_data("8") 12.50 döndürür, process_data("-5") -20.00 döndürür ve process_data("abc") Input must be a number! döndürür.
İki kontrolü fonksiyonun başında koruma koşulları olarak yaz.
Kendin dene
func process_data(text: String):
# Kodu buraya yazın
pass
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Mantık ve Akış bölümündeki tüm dersler
1String’leri Derinlemesine İnceleme
String MetotlarıString’lerde AramaDeğiştirme ve KırpmaBölme ve BirleştirmeTekrar: Kullanıcı Adı Kontrolü4Sözlükler Bölüm 2
İç İçe SözlüklerSözlük DizileriSözlükleri BirleştirmeSözlükleri KopyalamaTekrar - Frekans Sayacı10İleri Düzey Fonksiyonlar
Birden Fazla Değer DöndürmeLambda Fonksiyonları Bölüm 1Lambda Fonksiyonları Bölüm 2Tekrar - Lambda ile SıralamaÖzyinelemeli Fonksiyonlar Bölüm 1Özyinelemeli Fonksiyonlar Bölüm 2Tekrar - İç İçe Dizilerin Toplamı13Envanter Yönetim Sistemi
Projeye Genel BakışÜrün Ekle2İleri Düzey Karar Verme
Değişkenlerle EşleştirmeEşleştirme KoşullarıDizi KalıplarıSözlük KalıplarıÜyelik KontrolleriÖzet - Komut Ayrıştırıcı5Rehber Uygulaması
Menüyü GörüntüleKişi Ekle8Öğrenci Kayıt Yöneticisi
Proje Genel BakışıÖğrenci Ekle11Üst Düzey Fonksiyonlar
map Metodufilter Metodureduce Metoduany ve allTekrar - E-posta DoğrulayıcıTekrar - Sayı İşleyici3Çok Boyutlu Diziler
2B Dizilere Giriş2B Dizi Elemanlarına Erişim2B Dizilerle İç İçe DöngülerTekrar - 2B DizilerDüzensiz DizilerYaygın 2B Dizi ÖrüntüleriTekrar - Oyun Tahtası6Sözlüklerle Kümeler
Küme Nedir?Küme Olarak SözlükEkleme ve SilmeBirleşim ve KesişimKüme FarkıTekrar: Yinelenenleri Silme9Gelişmiş Veri Toplama
Değerleri ToplamaEn Küçük ve En Büyük Değeri BulmaÖzel SıralamaÖzet - Sözlük Sıralayıcı12Temel Hata Yönetimi
Hata Yönetimi Nedir?Girdiyi DoğrulamaKoruma KoşullarıHata Kodları DöndürmeTekrar - Güvenli BölmeKendi başına pratik yap: Online GDScript derleyicisi