Break i continue
Część sekcji Logika i sterowanie przepływem ścieżki C# w Coddy. Lekcja 21 z 66.
W C# instrukcje break i continue dają większą kontrolę nad wykonywaniem pętli.
Instrukcja break
Instrukcja break natychmiast kończy pętlę:
for (int i = 1; i <= 10; i++)
{
if (i == 5)
{
break; // Wyjdź z pętli, gdy i jest równe 5
}
Console.WriteLine(i);
}Po wykonaniu powyższego kodu wynikiem będzie:
1
2
3
4Pętla zatrzymuje się, gdy tylko i osiągnie wartość 5, a wykonywanie jest kontynuowane od kodu znajdującego się za pętlą.
Instrukcja continue
Instrukcja continue pomija resztę bieżącej iteracji i przechodzi do następnej iteracji:
for (int i = 1; i <= 5; i++)
{
if (i == 3)
{
continue; // Pomiń resztę tej iteracji
}
Console.WriteLine(i);
}Po wykonaniu powyższego kodu wynikiem będzie:
1
2
4
5Wartość 3 nie jest wyświetlana, ponieważ instrukcja continue pomija Console.WriteLine(i) w tej iteracji.
Wyzwanie
ŁatwyNapisz metodę o nazwie ProcessNumbers, która przyjmuje tablicę liczb całkowitych jako parametr. Metoda powinna:
- Wyświetlać wszystkie liczby z tablicy
- Pominąć wyświetlanie liczb ujemnych (użyj
continue) - Przerwać przetwarzanie po napotkaniu liczby większej niż 100 (użyj
break) - Zwrócić sumę wszystkich wyświetlonych liczb
Spróbuj swoich sił
using System;
public class Program
{
public static int ProcessNumbers(int[] numbers)
{
// Wpisz tutaj swój kod
return 0;
}
public static void Main(string[] args)
{
// Wczytaj dane od użytkownika
string input = Console.ReadLine();
int[] numbers;
if (string.IsNullOrEmpty(input))
{
// Przykładowa tablica do testowania
numbers = new int[] { 5, -3, 10, 15, -7, 105, 20 };
}
else
{
string[] parts = input.Split(',');
numbers = new int[parts.Length];
for (int i = 0; i < parts.Length; i++)
{
numbers[i] = int.Parse(parts[i].Trim());
}
}
int sum = ProcessNumbers(numbers);
Console.WriteLine("Sum: " + sum);
}
}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