Witam wszystkich.
Mam pytanie, czy w instrukcji warunkowej if
jako jej instrukcja może być kolejna instrukcja warunkowa if
.
Coś takiego:
if(warunek)
{
if(warunek)
{
(instrukcja)
}
}
Witam wszystkich.
Mam pytanie, czy w instrukcji warunkowej if
jako jej instrukcja może być kolejna instrukcja warunkowa if
.
Coś takiego:
if(warunek)
{
if(warunek)
{
(instrukcja)
}
}
Jak najbardziej i w każdym języku ... no prawie ... przynajmniej w każdym C podobnym.
Należy też pamiętać iż:
if(warunek1)
{
if(warunek2)
{
instrukcja;
}
}
Jest tożsame z:
if(warunek1 && warunek2)
{
instrukcja;
}
Może. Może być ich jeszcze wiele. Zawsze pamiętaj jednak, że zbytnie zagnieżdżanie tych instrukcji powoduje spadek czytelności i wzrost skomplikowania kodu - należy robić to rozsądnie.
_13th_Dragon wiem, że znaczy to samo, ale ja chcę to wykorzystać do wklepywania szyfru i ten kod ma być do sterowania mikrokontrolerem AVR więc jak by taki warunek był jak pokazałeś to można by w jednym czasie wszystkie klawisze wcisnąć i by zadziałało.Znacie może jakiś sposób na sprawdzanie po kolei warunków i dopiero w ostatnim wykonanie instrukcji [jestem bardzo początkujący :E] ?
więc jak by taki warunek był jak pokazałeś to można by w jednym czasie wszystkie klawisze wcisnąć i by zadziałało
Istnieje 99% szans, że ten kod tak czy siak zostanie zoptymalizowany do formy if (foo && bar)
, bo one są identyczne w działaniu (nie zapominaj dodatkowo o short-circuit evaluation
oraz tym podobnych).
Znacie może jakiś sposób na sprawdzanie po kolei warunków i dopiero w ostatnim wykonanie instrukcji
if (a && b && c && d)
do_somethin'();
?
Czy przypadkiem nie próbujesz wyważyć otwartych drzwi?
http://edap.pl/artykuly/obsluga-przyciskow-w-avr
I tam wpisuje w tym if warunki ile chce tylko muszą być oddzielane " && " i w do_somethin'(); wpisuje instrukcje i ona wykona się jak po kolei warunki zostaną spełnione czy w dowolnej kolejności?Ja chcę uzyskać efekt żeby były w kolejności i, że mogą być spełnione nawet przez chwilę każdy?
Wait, wait.
Chcesz zrobić coś takiego, że jak którykolwiek z warunków jest spełniony (operator ||
), czy jak wszystkie na raz są spełnione (operator &&
)?
Ja chce coś takiego:
-sprawdza czy kliknięty przycisk 1 (nawet przez chwilę)
-sprawdza czy kliknięty przycisk 2 (nawet przez chwilę)
-sprawdza czy kliknięty przycisk 3 (nawet przez chwilę)
-sprawdza czy kliknięty przycisk 4 (nawet przez chwilę)
-sprawdza czy kliknięty przycisk 5 (nawet przez chwilę)
-sprawdza czy kliknięty przycisk 6 (nawet przez chwilę)
-sprawdza czy kliknięty przycisk 7 (nawet przez chwilę)
-sprawdza czy kliknięty przycisk 8 (nawet przez chwilę)
-sprawdza czy kliknięty przycisk 9 (nawet przez chwilę)
-wykonuje instrukcję
Musi być zachowana kolejność sprawdzania przycisków.Nie chodzi mi o komendy do przycisków tylko o wzór jak to mam napisać.
int x=0; // w x ustawiono zero bitów
if(a) x|=1; // w x ustawiono pierwszy bit
if(b) x|=2; // w x ustawiono drugi bit
if(c) x|=4; // w x ustawiono trzeci bit
if(d) x|=8; // w x ustawiono czwarty bit
if(!(x&(x-1))) // czy w x ustawiono nie więcej niż jeden bit
{
if(a) ...; // spełniony tylko warunek a
else if(b) ...; // spełniony tylko warunek b
else if(c) ...; // spełniony tylko warunek c
else if(d) ...; // spełniony tylko warunek d
else ...; // żaden warunek nie jest spełniony
}
else ...;// kilka warunków spełnione
Mógłbyś skomentować każdą linijkę co oznacza bo nie rozumiem tego kodu.