Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 7 mar 2025, o 03:08


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 12 ] 
Autor Wiadomość
PostNapisane: 7 kwi 2016, o 17:42 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 12 sie 2013
Posty: 230
Lokalizacja: Zabrze
Pomógł: 17

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Jak działa if-else?
Skoro uart_puts() masz i w sekcji spełnienia warunku -"if" i w sekcji niespełnienia warunku -"else", to logiczne, że w wykona się każdorazowo. Tam gdzie nie chcesz by się wykonała tam usuń uart_puts().

_________________
40-32:2=4!



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 kwi 2016, o 19:10 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 sty 2013
Posty: 1760
Pomógł: 196

Witam
multitask napisał(a):
... jeśli oba warunki nie są spełnione >?

A będzie taka sytuacja?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 kwi 2016, o 19:18 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 sty 2013
Posty: 1760
Pomógł: 196

PJS napisał(a):
Jak działa if-else?

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

...a gdzie miejsce na trzecią możliwość?

Pozdr.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 kwi 2016, o 20:04 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 12 sie 2013
Posty: 230
Lokalizacja: Zabrze
Pomógł: 17

kicajek napisał(a):
PJS napisał(a):
Jak działa if-else?

To było pytanie, które autor postu miał sam rozważyć. Widzę, że ktoś myślał, że ja się pytam o to :mrgreen: Przepraszam, że nie użyłem emotikonek i źle sformułowałem wypowiedź.
kicajek napisał(a):
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

...a gdzie miejsce na trzecią możliwość?

Pozdr.

Domyślam się, że to pytanie retoryczne, bo niby jaka możliwość? :mrgreen:

_________________
40-32:2=4!



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 kwi 2016, o 20:11 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 12 sie 2013
Posty: 230
Lokalizacja: Zabrze
Pomógł: 17

multitask napisał(a):
a co w sytuacji jeśli oba warunki nie są spełnione >?
bo wtedy też działa uart_puts("ATH/r");

Zastanów się, gdzie masz te dwa warunki. Tam jest tylko jeden warunek:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Gdy jest on spełniony to wykonują się funkcje w {} po tym warunku. A gdy nie jest spełniony to wykonywane są funkcje w {} po słowie kluczowy "else".
Nie ma żadnego więcej warunku. I nie ma innych możliwości jak tylko spełniony_warunek-nie_spełniony_warunek

------------------------ [ Dodano po: 3 minutach ]

multitask napisał(a):
czasami tak wychodzi


Nie rozumiem. Co wychodzi?
Być może masz na myśli sytuację, gdy musisz uwzględnić kilka sytuacji/warunków. Wtedy używasz kilku if-ów (z lub bez else - zależnie od potrzeb).

_________________
40-32:2=4!



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 kwi 2016, o 20:17 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 sty 2013
Posty: 1760
Pomógł: 196

Witam
PJS napisał(a):
To było pytanie, które autor postu miał sam rozważyć.

Dokładnie tak to odebrałem, dlatego pozwoliłem sobie na "tą cytatę" z identycznym zamiarem.
Ciąg dalszy mojej wypowiedzi dotyczyła nakierowania na "tą trzecią niemożliwość"

Pozdr.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 kwi 2016, o 05:19 
Offline
Nowy

Dołączył(a): 11 lut 2016
Posty: 1
Pomógł: 0

PJS napisał(a):
Domyślam się, że to pytanie retoryczne, bo niby jaka możliwość? :mrgreen:


Trzecia. Póki nie sprawdzisz, to ten kot jednocześnie żyje i nie żyje proszę pana...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 kwi 2016, o 07:38 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 26 sty 2016
Posty: 1168
Lokalizacja: Kraków
Pomógł: 93

Programowanie wkracza w przestrzeń mechaniki kwantowej?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 kwi 2016, o 08:02 
Offline
Użytkownik

Dołączył(a): 20 lip 2015
Posty: 83
Pomógł: 6

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Koledzy chyba nie przeanalizowali dobrze bo faktycznie tam jest "else if" czyli kolejny warunek :)

uart_puts zadziala dlatego, ze drugi IF nie ma klamr i odnosi się tylko instrukcji syrena(); - zobacz linia 12,13 wyzej.

Dlatego jezeli pierwszy warunek nie został spełniony, wchodzisz w else, sprawdzasz drugi if, ale drugi ma wewnątrz instrukcję syrena(); (bo nie ma klamerek), ten uart_puts wykonuje się już niezależnie od ifa.

kicajek napisał(a):
...a gdzie miejsce na trzecią możliwość?


Jak to gdzie? W kodzie :P

1. Jeżeli tak
2. Jeżeli nie
3. Jeżeli nie + ale

:mrgreen:



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 kwi 2016, o 15:35 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 sty 2013
Posty: 1760
Pomógł: 196

Witam
marmur napisał(a):
Jak to gdzie? W kodzie

Fakt - przeoczyłem tego "if'a" :oops: , co nie zmienia faktu że jak sam zauważyłeś dotyczy tylko jednej lini kodu ( syrena).
Nie widziałem, ale aby wyjść z honorem ( cokolwiek to znaczy ) mógłbym powiedzieć:
widziałem, ale pytanie dotyczyło spełnienia warunku dla
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

- każdy sąd by mi uwierzył :lol:

Człowiek tak podświadomie patrzy na klamry, że ten if został w sprytny sposób przemycony pod naszymi nosami :)

Pozdr.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 kwi 2016, o 20:24 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 12 sie 2013
Posty: 230
Lokalizacja: Zabrze
Pomógł: 17

kicajek napisał(a):
Witam
marmur napisał(a):
Jak to gdzie? W kodzie

Fakt - przeoczyłem tego "if'a" :oops:

A ja nie przeoczyłem. Tylko zamroczyło mnie i byłem przekonany, że jest zaremowany (czyli jest komentarzem) :oops: Tak to jest, gdy się nieuważnie czyta listingi.
Przypomniało mi się, jak kiedyś trzy dni szukałem błędu w programie i nie mogłem zrozumieć dlaczego również "if" nie działa. W końcu poprosiłem o pomoc znajomego programistę, z którym siedzieliśmy kolejne parę godzin, aż jego żona (totalnie nie zna się na programowaniu) zajrzała nam przez ramię i po chwili spytała: "czemu ta linijka z if kończy się średnikiem a inne nie?". :D

_________________
40-32:2=4!



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 kwi 2016, o 23:40 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 sty 2013
Posty: 1760
Pomógł: 196

Witam
multitask napisał(a):
bo spodziewałem się ze instrukcja " uart_puts("ATH/r");" wykona się tylko jak będzie zgodność tablic

Teraz to trochę strach :) , ale może tak:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Pozdr.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 12 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Google [Bot] i 5 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO