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 menumpuk percabangan.

Mari bandingkan dua pendekatan untuk memvalidasi nama pengguna:

Tanpa pengembalian lebih awal (percabangan bertingkat):

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

Dengan return lebih 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 programmu sampai di sini, username valid
    return true;
}

Pengembalian 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 lebih awal untuk memeriksa setiap kondisi dan mengembalikan pesan error yang sesuai.

Method tersebut harus:

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

Cetak pesan error dengan format berikut secara persis:

  • "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