Video: MARINE ELECTRONICS: Communications at Sea, Navigation, and Sailing Apps (Iridium Go? Sextant?) #35 2024
In de C-programmering kan het return-sleutelwoord op elk moment uit een functie springen, waarbij uitvoering wordt verzonden terug naar de verklaring die de functie heeft genoemd. Of, in het geval van de hoofd () functie, verlaat de terugkeer het programma. Die regel is snel, ook als de return geen waarde teruggeeft, wat geldt voor elke lege functie die je maakt. Overweeg om een functie te verlaten met retour .
EEN FUNCTIE VERLATEN MET RETOUR
# inclusief ongeldige limiet (int stop); int main () {int s; printf ("Voer een stopwaarde in (0-100):"); scanf ("% d", & s); limiet (en); return (0);} void limit (int stop) {int x; voor (x = 0; x <= 100; x = x + 1) {printf ("% d", x); if (x == stop) {puts ("Je hebt gewonnen!"); return;}} puts ("I won!");
De onzinnige broncode die wordt weergegeven in Een functie afsluiten met return roept een functie, limit () aan, met een specifieke waarde die wordt gelezen in Line 10. Een lus in die functie spuwt nummers uit. Als er een overeenkomst is gemaakt met het argument van de functie, haalt een return-instructie (zie Regel 25) de functie weg.
Anders gaat de uitvoering door en eindigt de functie eenvoudig. Er is geen retourfunctie vereist aan het einde van de functie omdat er geen waarde wordt geretourneerd.
Oefening 1 : Maak een nieuw project met de broncode die wordt weergegeven in Een functie afsluiten met retourneren . Bouw en ren.
Een probleem met de code is dat deze niet controleert of alleen waarden van 0 tot 100 worden ingevoerd.
Oefening 2 : Wijzig de broncode van het afsluiten van een functie met return zodat een tweede functie, verify (), controleert of de invoer van de waarde binnen het bereik van 0 tot 100. De functie moet de constante WAAR (gedefinieerd als 1) retourneren als de waarde binnen het bereik ligt, of ONWAAR (gedefinieerd als 0) als dat niet het geval is.
Wanneer een waarde buiten bereik is, moet het programma een foutmelding weergeven.
Natuurlijk win je altijd nadat je de invoer voor Oefening 2 beperkt hebt tot het opgegeven bereik. Misschien kun je een andere manier bedenken om de functie limit () te coderen zodat de computer een kans heeft - zelfs als deze cheat?