Refactoring Loop
Termasuk bagian Logika dan Alur dalam perjalanan C# di Coddy. Pelajaran 16 dari 66.
Melakukan refaktor pada perulangan dapat meningkatkan keterbacaan dan kemudahan pemeliharaan kode.
Ganti perulangan tradisional dengan foreach agar lebih sederhana:
string[] fruits = { "apple", "banana", "cherry" };
// Sebelum refaktorisasi
for (int i = 0; i < fruits.Length; i++)
{
Console.WriteLine(fruits[i]);
}
// Setelah refaktorisasi
foreach (string fruit in fruits)
{
Console.WriteLine(fruit);
}Ekstrak logika perulangan yang kompleks ke dalam method:
int[] numbers = { 1, 2, 3, 4, 5, 6 };
// Sebelum refactoring
for (int i = 0; i < numbers.Length; i++)
{
if (numbers[i] % 2 == 0)
{
Console.WriteLine($"{numbers[i]} is even");
}
}
// Setelah refactoring dengan method pembantu
for (int i = 0; i < numbers.Length; i++)
{
if (IsEven(numbers[i]))
{
Console.WriteLine($"{numbers[i]} is even");
}
}
// Method pembantu
bool IsEven(int number)
{
return number % 2 == 0;
}Pecah perulangan besar menjadi perulangan yang lebih kecil dan lebih terfokus:
int[] data = { 1, 2, 3, 4, 5 };
// Sebelum: Satu perulangan besar mengerjakan beberapa hal
for (int i = 0; i < data.Length; i++)
{
// Proses data
data[i] = data[i] * 2;
// Cetak hasil
Console.WriteLine(data[i]);
}
// Sesudah: Perulangan terpisah dengan tujuan yang jelas
// Proses data
for (int i = 0; i < data.Length; i++)
{
data[i] = data[i] * 2;
}
// Cetak hasil
for (int i = 0; i < data.Length; i++)
{
Console.WriteLine(data[i]);
}Tantangan
SedangBuat method bernama refactorArrayFilter yang:
- Menerima array bilangan bulat sebagai parameter
- Menerapkan dua versi kode yang menghitung jumlah bilangan yang habis dibagi 3:
- Versi asli: Gunakan for loop tradisional dengan pernyataan if
- Versi refaktor: Gunakan foreach loop dengan logikanya dipisahkan ke helper method
- Mengembalikan jumlah dari versi refaktor sebagai bilangan bulat
Misalnya, jika diberikan array [3, 4, 6, 7, 9], method tersebut harus mengembalikan 3 karena ada tiga bilangan (3, 6, dan 9) yang habis dibagi 3.
Catatan: Kamu tidak perlu mencetak apa pun, cukup kembalikan jumlahnya sebagai bilangan bulat.
Coba sendiri
public class RefactorArrayFilter
{
// Implementasikan method refactorArrayFilter
public static int refactorArrayFilter(int[] numbers)
{
// Tulis kodemu di sini
}
// Implementasikan method pembantu yang kamu perlukan
}Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Logika dan Alur
1array Multidimensi
Dasar-Dasar array 2DMendeklarasikan dan Menginisialisasi array 2DMengakses Elemen array 2DPerulangan Bersarang dengan array 2Darray BergerigiOperasi Matriks UmumRangkuman: array Multidimensi4Teknik Alur Kontrol
Pengembalian DiniKlausa PenjagaPernyataan Lompatan (goto)Break dan ContinueMeratakan Percabangan Bersarang7Operator Logika Lanjutan
Evaluasi Hubung SingkatOperator Logika PercabanganPrioritas OperatorRingkasan Operator Lanjutan2Pengambilan Keputusan Tingkat Lanjut
Beberapa KondisiLogika Boolean yang KompleksPerbandingan If dan SwitchPernyataan Switch BersarangUlasan: Pengambilan Keputusan Tingkat Lanjut5Penanganan Exception
Dasar Try-CatchJenis ExceptionBeberapa Blok CatchBekerja dengan fileBlok FinallyUsing vs. Try-FinallyException KustomRingkasan: Penanganan error3Peningkatan Loop
Performa LoopIterasi yang KompleksSetiap Jenis LoopRefactoring LoopRangkuman: Loop yang Dioptimalkan6Penanganan Null
Dasar Referensi NullTipe Nilai NullablePola Pemeriksaan NullPemrograman DefensifRingkasan: Keamanan NullLatihan sendiri: Compiler C# online