Klauzule ochronne
Część sekcji Logika i sterowanie przepływem ścieżki C# w Coddy. Lekcja 19 z 66.
Klauzule ochronne to instrukcje warunkowe na początku metody, które sprawdzają przypadki brzegowe lub nieprawidłowe dane wejściowe i w razie spełnienia tych warunków natychmiast kończą działanie metody.
Utwórzmy metodę bez klauzuli ochronnej:
public void ProcessOrder(Order order)
{
if (order != null)
{
// Przetwórz zamówienie
// Wiele linii kodu tutaj...
}
}Teraz przepiszmy to z użyciem klauzuli ochronnej:
public void ProcessOrder(Order order)
{
if (order == null)
{
return; // Warunek ochronny – zakończ działanie od razu, jeśli order ma wartość null
}
// Przetwórz zamówienie
// Wiele linii kodu tutaj...
}Klauzule ochronne poprawiają czytelność, ograniczając zagnieżdżenia i obsługując wyjątkowe przypadki na początku metody.
Wyzwanie
ŁatwyUtwórz metodę o nazwie DivideNumbers, która przyjmuje dwie liczby całkowite: numerator i denominator.
- Dodaj klauzulę ochronną, aby sprawdzić, czy denominator wynosi zero.
- Jeśli denominator wynosi zero, wypisz: "Cannot divide by zero" i zwróć 0.
- W przeciwnym razie podziel numerator przez denominator i zwróć wynik.
Spróbuj swoich sił
using System;
public class Program
{
public static int DivideNumbers(int numerator, int denominator)
{
// Wpisz tutaj swój kod
}
public static void Main()
{
// Odczytaj dane wejściowe z konsoli
int numerator = Convert.ToInt32(Console.ReadLine());
int denominator = Convert.ToInt32(Console.ReadLine());
// Wywołaj metodę DivideNumbers
int result = DivideNumbers(numerator, denominator);
// Wypisz wynik
Console.WriteLine(result);
}
}Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Logika i sterowanie przepływem
1Tablice wielowymiarowe
Podstawy tablic 2DDeklarowanie i inicjalizacja tablic 2DDostęp do elementów tablic 2DZagnieżdżone pętle z tablicami 2DTablice postrzępionePodstawowe operacje na macierzachPodsumowanie — tablice wielowymiarowe4Techniki sterowania przepływem
Wczesne zwrotyKlauzule ochronneInstrukcje skoku (goto)Break i continueSpłaszczanie zagnieżdżonych warunków7Zaawansowane operatory logiczne
Ewaluacja z krótkim spięciemWarunkowe operatory logicznePriorytet operatorówPowtórzenie — zaawansowane operatory2Zaawansowane podejmowanie decyzji
Wiele warunkówZłożona logika Boole’aPorównanie if i switchZagnieżdżone instrukcje switchPodsumowanie — zaawansowane decyzje5Obsługa wyjątków
Podstawy try-catchTypy wyjątkówWiele bloków catchPraca z plikamiBlok finallyusing a try-finallyWłasne wyjątkiPowtórzenie — obsługa błędów3Udoskonalenia pętli
Wydajność pętliIterowanie po złożonych strukturachKażdy typ pętliRefaktoryzacja pętliPodsumowanie — zoptymalizowane pętle6Obsługa wartości null
Podstawy referencji nullTypy wartości dopuszczające nullWzorce sprawdzania nullProgramowanie defensywnePodsumowanie — bezpieczeństwo nullPoćwicz samodzielnie: Kompilator C# online