Menu
Coddy logo textTech

Refaktoryzacja pętli

Część sekcji Logika i sterowanie przepływem ścieżki C# w Coddy. Lekcja 16 z 66.

Refaktoryzacja pętli może poprawić czytelność i łatwość utrzymania kodu.

Zastąp tradycyjną pętlę pętlą foreach, aby uprościć kod:

string[] fruits = { "apple", "banana", "cherry" };

// Przed refaktoryzacją
for (int i = 0; i < fruits.Length; i++)
{
    Console.WriteLine(fruits[i]);
}

// Po refaktoryzacji
foreach (string fruit in fruits)
{
    Console.WriteLine(fruit);
}

Wydziel złożoną logikę pętli do metod:

int[] numbers = { 1, 2, 3, 4, 5, 6 };

// Przed refaktoryzacją
for (int i = 0; i < numbers.Length; i++)
{
    if (numbers[i] % 2 == 0)
    {
        Console.WriteLine($"{numbers[i]} is even");
    }
}

// Po refaktoryzacji z użyciem metody pomocniczej
for (int i = 0; i < numbers.Length; i++)
{
    if (IsEven(numbers[i]))
    {
        Console.WriteLine($"{numbers[i]} is even");
    }
}

// Metoda pomocnicza
bool IsEven(int number)
{
    return number % 2 == 0;
}

Podziel duże pętle na mniejsze, bardziej ukierunkowane pętle:

int[] data = { 1, 2, 3, 4, 5 };

// Przed: Jedna duża pętla wykonująca wiele zadań
for (int i = 0; i < data.Length; i++)
{
    // Przetwarzanie danych
    data[i] = data[i] * 2;
    // Wyświetlanie wyników
    Console.WriteLine(data[i]);
}

// Po: Oddzielne pętle o jasno określonych celach
// Przetwarzanie danych
for (int i = 0; i < data.Length; i++)
{
    data[i] = data[i] * 2;
}

// Wyświetlanie wyników
for (int i = 0; i < data.Length; i++)
{
    Console.WriteLine(data[i]);
}
challenge icon

Wyzwanie

Średni

Utwórz metodę o nazwie refactorArrayFilter, która:

  1. Przyjmuje tablicę liczb całkowitych jako parametr
  2. Implementuje dwie wersje kodu zliczającego liczby podzielne przez 3:
    • Oryginalna: używa tradycyjnej pętli for z instrukcją if
    • Po refaktoryzacji: używa pętli foreach, a logika jest wyodrębniona do metody pomocniczej
  3. Zwraca liczbę elementów z wersji po refaktoryzacji jako liczbę całkowitą

Na przykład dla tablicy [3, 4, 6, 7, 9] metoda powinna zwrócić 3, ponieważ trzy liczby (3, 6 i 9) są podzielne przez 3.

Uwaga: nie musisz niczego wyświetlać — po prostu zwróć liczbę elementów jako liczbę całkowitą.

Spróbuj swoich sił

public class RefactorArrayFilter
{
    // Zaimplementuj metodę refactorArrayFilter
    public static int refactorArrayFilter(int[] numbers)
    {
        // Napisz tutaj swój kod
        
    }
    
    // Zaimplementuj wszystkie potrzebne metody pomocnicze
}
quiz iconSprawdź się

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

Poćwicz samodzielnie: Kompilator C# online