Heim > Backend-Entwicklung > C++ > Warum erzeugt mein C# -Coder einen Fehler 'Nicht alle Codepfade geben einen Wert zurück'?

Warum erzeugt mein C# -Coder einen Fehler 'Nicht alle Codepfade geben einen Wert zurück'?

DDD
Freigeben: 2025-02-01 11:16:09
Original
133 Leute haben es durchsucht

Why Does My C# Code Produce a

c# Compiler Problem: Alle Codepfade, die durch Verarbeitung von Wert

zurückgegeben werden

Beim Versuch zu bestimmen, ob die angegebene Ganzzahl durch jede Zahl zwischen 1 und 20 entfernt werden kann, trifft der Entwickler auf eine Fehlermeldung, dass der Inhalt "nicht alle Codepfade zurückgeben".

Codeprüfung

Nachdem der folgende Code überprüft wurde, ist der Compiler -Fehler offensichtlich:

Das Problem stammt nur von zwei Rückgaberücksachen in der Funktionsbehörde. Diese Aussagen werden nicht entfernt oder können von allen Zahlen zwischen 1 und 20 entfernt werden. Der Compiler benötigt jedoch alle möglichen Ausführungspfade in der Funktion, um den Wert zurückzugeben.
<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>
Nach dem Login kopieren

Lösung

Um diesen Fehler zu lösen, müssen Sie dem Code eine weitere Rückgabeanweisung hinzufügen, um die verbleibenden Ausführungspfade zu verarbeiten. Dieser Pfad zeigt an, dass der Zyklus abgeschlossen ist und keine Anzahl von Zahlen von 1 bis 20 entfernt werden kann.

Der folgende Code enthält die mangelnde Rückgabeanweisungen, um sicherzustellen, dass alle möglichen Codepfade jetzt zurückgegeben werden:

Die verbesserte Lösungsbeschreibung:

<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>
Nach dem Login kopieren
im ursprünglichen Code ist zu streng. Nur wenn

gleich 20 ist und zurückgegeben werden kann, wenn es gleichzeitig entfernt wird. Wenn das Vielfache von 20, aber größer als 20 ist, gibt der Code keinen Wert zurück. Daher sollte der korrekte Code nach Ablauf des Zyklus standardmäßig zurückgeben, was angibt, dass die Zahl durch jede Zahl zwischen 1 und 20 entfernt werden kann. else if(num % j == 0 && num == 20) wird nur zurückgegeben, wenn der Zyklus im Zyklus gefunden wird. num

Das obige ist der detaillierte Inhalt vonWarum erzeugt mein C# -Coder einen Fehler 'Nicht alle Codepfade geben einen Wert zurück'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage