Rumah > pembangunan bahagian belakang > C++ > Kenapa kod C# saya menghasilkan ralat 'tidak semua kod mengembalikan nilai'?

Kenapa kod C# saya menghasilkan ralat 'tidak semua kod mengembalikan nilai'?

DDD
Lepaskan: 2025-02-01 11:16:09
asal
133 orang telah melayarinya

Why Does My C# Code Produce a

C# Compiler Masalah: Semua laluan kod dikembalikan dengan nilai pemprosesan

Apabila cuba menentukan sama ada integer yang diberikan boleh dikeluarkan oleh setiap nombor antara 1 dan 20, pemaju menemui mesej ralat bahawa kandungannya adalah "tidak semua laluan kod mengembalikan nilai."

pemeriksaan kod

Selepas menyemak kod berikut, ralat pengkompil jelas:

Masalahnya datang dari hanya dua pernyataan pulangan dalam badan fungsi. Kenyataan ini tidak dikeluarkan atau boleh dikeluarkan oleh semua nombor antara 1 dan 20. Walau bagaimanapun, pengkompil memerlukan semua laluan pelaksanaan yang mungkin dalam fungsi untuk mengembalikan nilai.
<code class="language-c#">{
    for(int j = 1; j <= 20; j++)
    {
        if(num % j != 0)
        {
            return false;
        }
        else if(num % j == 0 && num == 20)
        {
            return true;
        }
    }
}</code>
Salin selepas log masuk

Penyelesaian

Untuk menyelesaikan kesilapan ini, anda perlu menambah pernyataan pulangan lain ke kod untuk mengendalikan laluan pelaksanaan yang selebihnya. Laluan ini menunjukkan bahawa kitaran selesai dan tiada nombor nombor yang boleh dikeluarkan dari 1 hingga 20 boleh didapati.

Kod berikut mengandungi kekurangan pernyataan pulangan untuk memastikan semua laluan kod yang mungkin dikembalikan:

Penyelesaian yang lebih baik Keterangan:

<code class="language-c#">{
    for(int j = 1; j <= 20; j++)
    {
        if(num % j != 0)
        {
            return false;
        }
        else if(num % j == 0 && num == 20)
        {
            return true;
        }
    }

    return true;  //添加了缺少的 return 语句,  此处应为true,表示可以被1-20整除
}</code>
Salin selepas log masuk
Dalam kod asal terlalu ketat. Hanya apabila

sama dengan 20 dan boleh dikembalikan apabila ia dikeluarkan pada masa yang sama. Jika adalah pelbagai daripada 20 tetapi lebih besar daripada 20, kod itu tidak akan mengembalikan sebarang nilai. Oleh itu, kod yang betul harus kembali secara lalai selepas kitaran berakhir, menunjukkan bahawa nombor itu boleh dikeluarkan oleh setiap nombor antara 1 hingga 20. else if(num % j == 0 && num == 20) dikembalikan hanya apabila kitaran didapati dalam kitaran. num

Atas ialah kandungan terperinci Kenapa kod C# saya menghasilkan ralat 'tidak semua kod mengembalikan nilai'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan