>백엔드 개발 >C++ >내 C# 코드가 '모든 코드 경로가 값을 반환하는 것은 아니라고'오류를 생성하는 이유는 무엇입니까?

내 C# 코드가 '모든 코드 경로가 값을 반환하는 것은 아니라고'오류를 생성하는 이유는 무엇입니까?

DDD
DDD원래의
2025-02-01 11:16:09183검색

C# 컴파일러 문제 : 값을 처리하여 반환 된 모든 코드 경로 Why Does My C# Code Produce a 주어진 정수를 1에서 20 사이의 각 숫자로 제거 할 수 있는지 확인하려고 할 때 개발자는 콘텐츠가 "모든 코드 경로가 값을 반환하는 것은 아니다"라는 오류 메시지를 만난다.

코드 점검 다음 코드를 확인한 후 컴파일러 오류가 분명합니다.

문제는 함수 본문의 두 가지 반환 문에서 발생합니다. 이 진술은 제거되지 않거나 1과 20 사이의 모든 숫자로 제거 될 수 있습니다. 그러나 컴파일러는 값을 반환하기 위해 함수의 모든 실행 경로가 필요합니다.

솔루션 이 오류를 해결하려면 나머지 실행 경로를 처리하기 위해 코드에 다른 리턴 명령문을 추가해야합니다. 이 경로는 사이클이 완료되었으며 1에서 20까지 제거 할 수있는 숫자를 찾을 수 없음을 나타냅니다.

다음 코드에는 이제 가능한 모든 코드 경로가 반환되도록 리턴 명령문이 포함되어 있습니다.

개선 된 솔루션 설명 :

원본 코드에서 너무 엄격합니다. 가 20과 같고 동시에 제거 될 때만

를 반환 할 수 있습니다. 가 20의 배수이지만 20보다 큰 경우 코드는 값을 반환하지 않습니다. 따라서 순환이 끝난 후 기본적으로 올바른 코드는

를 반환해야하므로 숫자는 각 숫자로 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>

위 내용은 내 C# 코드가 '모든 코드 경로가 값을 반환하는 것은 아니라고'오류를 생성하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.