Menu
CoddyTech

Pengembalian Dini

Termasuk bagian Logika dan Alur dalam perjalanan C# di Coddy. Pelajaran 18 dari 66.

Return lebih awal adalah teknik untuk keluar dari method segera setelah kita mendapatkan jawabannya atau menemukan kondisi yang tidak valid, alih-alih membuat percabangan bertingkat.

Mari bandingkan dua pendekatan untuk memvalidasi nama pengguna:

Tanpa return lebih awal (percabangan bersarang):

public bool ValidateUsername(string username)
{
    bool isValid = false;
    
    if (username != null)
    {
        if (username.Length >= 3)
        {
            if (username.Length <= 20)
            {
                isValid = true;
            }
        }
    }
    
    return isValid;
}

Dengan pengembalian awal:

public bool ValidateUsername(string username)
{
    // Segera kembalikan nilai jika username bernilai null
    if (username == null)
        return false;
        
    // Segera kembalikan nilai jika username terlalu pendek
    if (username.Length < 3)
        return false;
        
    // Segera kembalikan nilai jika username terlalu panjang
    if (username.Length > 20)
        return false;
        
    // Jika sudah sampai di sini, username valid
    return true;
}

Pengembalian lebih awal membuat kode lebih mudah dibaca dan mengurangi tingkat indentasi.

challenge icon

Tantangan

Mudah

Tulis method bernama ProcessPayment yang menentukan apakah pembayaran dapat diproses berdasarkan:

  1. Jumlah pembayaran harus positif
  2. Saldo akun harus mencukupi
  3. Akun tidak boleh terkunci

Gunakan return awal untuk memeriksa setiap kondisi dan mengembalikan pesan error yang sesuai.

Method ini harus:

  • Menerima tiga parameter: decimal paymentAmount, decimal accountBalance, dan bool isAccountLocked
  • Mengembalikan string yang berisi "Payment processed successfully" atau pesan error
  • Menggunakan return awal untuk validasi

Cetak pesan error dengan format yang sama persis seperti berikut:

  • "Error: Payment amount must be positive"
  • "Error: Insufficient funds"
  • "Error: Account is locked"

Coba sendiri

using System;

public class Program
{
    public static string ProcessPayment(decimal paymentAmount, decimal accountBalance, bool isAccountLocked)
    {
        // Tulis kodemu di sini
    }
    
    public static void Main(string[] args)
    {
        decimal paymentAmount = decimal.Parse(Console.ReadLine());
        decimal accountBalance = decimal.Parse(Console.ReadLine());
        bool isAccountLocked = bool.Parse(Console.ReadLine());
        
        string result = ProcessPayment(paymentAmount, accountBalance, isAccountLocked);
        Console.WriteLine(result);
    }
}
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Logika dan Alur

Latihan sendiri: Compiler C# online