Czy w instrukcji warunkowej "if" może być druga instrukcja "if"

0

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)
    }
}
1

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;
  }
1

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.

0

_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] ?

1

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'();

?

1

Czy przypadkiem nie próbujesz wyważyć otwartych drzwi?
http://edap.pl/artykuly/obsluga-przyciskow-w-avr

0

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?

1

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 &&)?

0

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ć.

1
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
0

Mógłbyś skomentować każdą linijkę co oznacza bo nie rozumiem tego kodu.

1 użytkowników online, w tym zalogowanych: 0, gości: 1