Olen suorittanut Johdatus ohjelmointiin Pythonilla ja olen enemmän tottunut Pythoniin kuin C: hen, joten voisin sekoittaa nämä kaksi. C antaa minulle kaikenlaisia virheitä. Yritin muuttaa asioita, mutta huomata näyttää toimivan; kun olen selvittänyt C: n syntaksin, kirjoitan todennäköisesti tämän ohjelman uudelleen.
#include <stdio.h> #include <cs50.h> int main(void) { int num; do { int num = getint(); while( int num < 0 or int num > 23 ); } }
Virheet:
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.
Vastaa
Se on väärin asetettu kiharuus.
do { int num = GetInt(); } while( int num < 0 || int num > 23 );
Haluat liittää do
-lausekkeen kiharaisiin aaltosulkeisiin, mutta pidä kunto-tila ulkopuolella. Varo isoja kirjaimia. Toiminnot erottavat kirjainkoon. Et voi myöskään ”käyttää sanaa” tai ”vaan käyttää sen sijaan ||
(kaksoisputki). (Ja myöhempää tarvetta varten &&
tarkoittaa ”ja”).
Kokeile!
Lisäksi luentotiedot viikosta 1: Ohjelmoinnin rakenteet C : llä on paljon esimerkkejä syntaksista erilaisille silmukoille, olosuhteille jne. Saattaa olla syytä pitää kätevänä referenssinä työskennellessäsi tämän kanssa.
Brenda.
do
lauseke sulkeissa, " tarkoitatko kiharaisia aaltosulkeita{}
sulkeiden sijasta()
?