Ukończyłem wprowadzenie do programowania w Pythonie i jestem bardziej przyzwyczajony do Pythona niż C, więc mogę pomieszać te dwa. C popełnia wszelkiego rodzaju błędy. Próbowałem coś zmienić, ale zauważanie wydaje się działać; jak tylko wymyślę składnię C, prawdopodobnie przepisam ten program.
#include <stdio.h> #include <cs50.h> int main(void) { int num; do { int num = getint(); while( int num < 0 or int num > 23 ); } }
Błędy:
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.
Odpowiedź
To niewłaściwy nawias klamrowy.
do { int num = GetInt(); } while( int num < 0 || int num > 23 );
Chcesz umieścić instrukcję do
w nawiasach klamrowych, ale pozostaw warunek while na zewnątrz. Uważaj na wielkie litery. W funkcjach jest rozróżniana wielkość liter. Nie możesz też użyć słowa „lub”, ale zamiast tego użyj ||
(podwójnej kreski). (I na przyszłość, &&
oznacza „i”).
Spróbuj!
Notatki do wykładu z 1 tygodnia: Konstrukcje programistyczne w C zawiera wiele przykładów składni dla różnych pętli, warunków itp. Może warto mieć je pod ręką podczas pracy nad tym.
Brenda.
do
w nawiasach, " czy masz na myśli nawiasy klamrowe{}
zamiast nawiasów()
?