C# Compiler Masalah: Semua laluan kod dikembalikan dengan nilai pemprosesan
pemeriksaan kod
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>
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.
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>
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!