Ik heb voltooid een inleiding tot programmeren met Python en ik ben meer gewend aan Python dan aan C, dus ik kan de twee misschien door elkaar halen. C geeft me allerlei soorten fouten. Ik heb geprobeerd dingen te veranderen, maar opmerken lijkt te werken; zodra ik de syntaxis van C heb ontdekt, ga ik dit programma waarschijnlijk herschrijven.

#include <stdio.h> #include <cs50.h> int main(void) { int num; do { int num = getint(); while( int num < 0 or int num > 23 ); } } 

Fouten:

mario.c:13:9: error: expected expression while( int num < 0 or int num > 23 ); ^ mario.c:16:1: error: expected "while" in do/while loop } ^ mario.c:9:2: note: to match this "do" do ^ mario.c:16:2: error: expected "}" } ^ mario.c:6:1: note: to match this "{" { ^ 3 errors generated. jharvard@appliance (~/Dropbox): make mario clang -ggdb3 -O0 -std=c99 -Wall -Werror mario.c -lcs50 -lm -o mario mario.c:13:9: error: expected expression while( int num < 0 or int num > 23 ); ^ mario.c:16:1: error: expected "while" in do/while loop } ^ mario.c:9:2: note: to match this "do" do ^ mario.c:18:1: error: expected "}" ^ mario.c:6:1: note: to match this "{" { ^ 3 errors generated. 

Antwoord

Het is een verkeerd geplaatste accolade.

do { int num = GetInt(); } while( int num < 0 || int num > 23 ); 

Je wilt de do -instructie tussen accolades plaatsen, maar de while-voorwaarde buiten houden. Wees voorzichtig met hoofdletters. Functies zijn hoofdlettergevoelig. Je kunt ook “het woord niet gebruiken” of “maar in plaats daarvan || (de dubbele pijp) gebruiken. (En voor toekomstig gebruik && betekent “en”).

Probeer dat eens!

Ook de Lecture Notes van Week 1: Programmeerconstructies in C heeft veel voorbeelden van syntaxis voor verschillende lussen, voorwaarden, enz. Het kan de moeite waard zijn om bij de hand te houden als referentie terwijl je hieraan werkt.

Brenda.

Opmerkingen

  • alle bugs zijn verholpen bedankt
  • @ zoot404, als het antwoord nuttig was, stem dan en markeer het ook als geaccepteerd. Dat helpt anderen bij het zoeken naar hun eigen antwoorden. 🙂
  • @curiouskiwi (gezondheidscontrole van mijn kant) als je zegt, " sluit de do instructie tussen haakjes, " bedoel je accolades {} in plaats van haakjes ()?
  • Ja, bedankt. Ik heb mijn antwoord bewerkt.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *