End If problem


Witam.
Chciałem zapytać dlaczego w moim kodzie po instrukcji if kończąc end if mam błąd w kompilacji?

Fragment kodu:

Do
 
If X >= 5 Then Portb.0 = 1 Else Portb.0 = 0
 
 
 
Loop
 
End

Wyżej jak widać nie ma End If i kompiluje się ok. Jednak gdy dodam End If jest błąd. Proszę o wyjaśnienie dlaczego tak jest.




Portret użytkownika paavo91

co dziwne jeśli kod wygląda

co dziwne jeśli kod wygląda tak:

Do
 
If x >= 5 Then
 
    Portb.0 = 1
 
    Else
 
    Portb.0 = 0
 
    End If
 
 
Loop
 
End

Wtedy wszystko jest ok. Czemu gdy było zapisane w 1 linii był problem?

Portret użytkownika mirley

Re: If

Odpowiedź jest prosta. Poprostu taka jest konstrukcja ifa w bascomie. Jak jest jedno polecenie w ifie to nie kończy się go end if i wszystko jest w jednej linii. Jak jest wiele poleceń lub jedno w nowej linni to end if jest konieczny

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika paavo91

Dzięki wielkie za

Dzięki wielkie za wyjaśnienie. Czytałem o ifie w książce Wiązania ale nie znalazłem nic o tym lub przegapiłem.

Portret użytkownika mirley

Re: BASCOM

W helpie do bascoma popatrz

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika gosc

Odkopuje temat

Nie wpisujac end if na koncu zyskuje sie bardzo duzo czasu, procedura trwa o wiele krocej. Przynajmniej tak jest na symulatorze bascoma. A jak sie to ma w rzeczywistosci? Niestety nie mam jak tego zmierzyc

Portret użytkownika mirley

If

Są dwie konstrukcje if, jedna z pojedynczą linijką p:

if warunek >0 then polecenie1 else polecenie2

i tylko po jednym poleceniu można wykonać w ifie, lub drugi warunek:
if warunek >0 then
  polecenia
  ....
else
  inne_polecenia
  .....
End if

w którym po ifie i then w NOWEJ LINIJCE znajduje się pierwsze polecenie i wtedy end if jest konieczny. Każda z tych instrukcji jest inaczej tłumaczona na asemblera i inaczej wykonywana

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.