c#コンパイラ問題:処理値によって返されるすべてのコードパス
コードチェック
問題は、関数本文の2つの返品ステートメントのみから発生しています。これらのステートメントは削除されないか、1〜20のすべての数値で削除することはできません。ただし、コンパイラは、値を返すために関数内のすべての可能な実行パスを必要とします。
<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>
このエラーを解決するには、残りの実行パスを処理するために別の返品ステートメントをコードに追加する必要があります。このパスは、サイクルが完了しており、1〜20に削除できる数値の数を見つけることができないことを示しています。
改善されたソリューション説明:元のコードの
は厳しすぎる。
が20に等しく、同時に削除された場合に<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>
を返す必要があり、各数値が1〜20の間で削除できることを示します。 は、サイクルがサイクルで見つかった場合にのみ返されます。
以上がなぜ私のC#コードが「すべてのコードパスが値を返すわけではない」エラーを生成するのですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。