Hentikan Loop Tanpa Henti
12 minitPemulaDebugging
Klik Calculate dan halaman beku seketika, kemudian console menunjukkan "Stopped a loop that ran for more than 1.5s". Mesej itu datang daripada loop guard WANCode — dalam tab pelayar biasa, bug ini akan membekukan halaman sehingga pelayar menawarkan untuk menghentikannya.
yearsToTarget(1000, 2000, 0.05) // 15 (RM1000 at 5% a year)
yearsToTarget(100, 800, 1) // 3 (doubles: 200, 400, 800)
yearsToTarget(5000, 2000, 0.05) // 0 (already there)
yearsToTarget(1000, 2000, 0) // -1 (0% interest never grows)Hasil yang dijangka
Keperluan
- Setiap tahun baki menjadi
balance * (1 + rate). Kira bilangan tahun penuh sehingga ia sekurang-kurangnyatarget. - Jika
balancesudah ≥target, pulangkan0. - Jika matlamat tidak akan tercapai (
rate <= 0ataubalance <= 0), pulangkan-1dan bukan loop selama-lamanya.
Baiki yearsToTarget(balance, target, rate) supaya loop-nya sentiasa tamat: pulangkan bilangan tahun untuk capai matlamat, 0 jika sudah tercapai, dan -1 jika baki tidak akan bertambah (rate atau baki ≤ 0).
Semakan
- Loop tamat dengan jawapan yang betul
- Memulangkan 0 apabila matlamat sudah tercapai
- Memulangkan -1 dan bukan loop selama-lamanya
Pratonton
Output konsol daripada kod anda akan dipaparkan di sini.