Instrukcja warunkowa C: IF, IF Else i zagnieżdżona IF Else z przykładem

Spisie treści:

Anonim

Co to jest instrukcja warunkowa w języku C?

Instrukcje warunkowe w języku C służą do podejmowania decyzji na podstawie warunków. Instrukcje warunkowe są wykonywane sekwencyjnie, gdy nie ma warunków wokół instrukcji. Jeśli umieścisz warunek dla bloku instrukcji, przepływ wykonywania może się zmienić w zależności od wyniku ocenianego przez warunek. Ten proces nazywa się podejmowaniem decyzji w „C”.

W programowaniu w 'C' instrukcje warunkowe są możliwe za pomocą następujących dwóch konstrukcji:

1. Jeśli oświadczenie

2. Instrukcja if-else

Nazywa się to również rozgałęzianiem, ponieważ program decyduje, którą instrukcję wykonać na podstawie wyniku ocenianego warunku.

W tym samouczku nauczysz się:

  • Co to jest instrukcja warunkowa?
  • Jeśli oświadczenie
  • Operatorzy relacyjni
  • Instrukcja Jeśli-Inaczej
  • Wyrażenia warunkowe
  • Zagnieżdżone instrukcje if-else
  • Zagnieżdżone instrukcje Inaczej, jeśli

Jeśli oświadczenie

Jest to jedna z potężnych instrukcji warunkowych. Instrukcja if jest odpowiedzialna za modyfikację przebiegu wykonywania programu. Jeśli instrukcja jest zawsze używana z warunkiem. Warunek jest oceniany najpierw przed wykonaniem jakiejkolwiek instrukcji wewnątrz treści If. Składnia instrukcji if jest następująca:

 if (condition)instruction; 

Warunek przyjmuje wartość prawda lub fałsz. True jest zawsze wartością niezerową, a false jest wartością zawierającą zero. Instrukcje mogą być pojedynczą instrukcją lub blokiem kodu ujętym w nawiasy klamrowe {}.

Poniższy program ilustruje użycie konstrukcji if w programowaniu w języku C:

#includeint main(){int num1=1;int num2=2;if(num1

Wynik:

num1 is smaller than num2

Powyższy program ilustruje użycie konstrukcji if do sprawdzenia równości dwóch liczb.

  1. W powyższym programie zainicjowaliśmy dwie zmienne numerami num1, num2 o wartości odpowiednio 1, 2.
  2. Następnie użyliśmy if z wyrażeniem testowym, aby sprawdzić, która liczba jest najmniejsza, a która największa. W konstrukcji if użyliśmy wyrażenia relacyjnego. Ponieważ wartość num1 jest mniejsza niż num2, warunek zostanie uznany za prawdziwy.
  3. W ten sposób wypisze instrukcję wewnątrz bloku If. Następnie sterowanie wyjdzie poza blok i program zostanie zakończony z pomyślnym wynikiem.

Operatorzy relacyjni

C ma sześć operatorów relacyjnych, których można użyć do sformułowania wyrażenia logicznego do podejmowania decyzji i testowania warunków, które zwraca prawdę lub fałsz:

<= mniejsze lub równe

> większe niż

> = większe lub równe

== równe

! = różne od

Zauważ, że test równości (==) różni się od operatora przypisania (=), ponieważ jest to jeden z najczęstszych problemów, z jakimi mierzy się programista, mieszając je.

Na przykład:

int x = 41;x =x+ 1;if (x == 42) {printf("You succeed!");}

Wynik :

 You succeed 

Pamiętaj, że warunek, którego wynikiem jest wartość różna od zera, jest uważany za prawdziwy.

Na przykład:

int present = 1;if (present)printf("There is someone present in the classroom \n");

Wynik :

There is someone present in the classroom 

Instrukcja Jeśli-Inaczej

Instrukcja if-else is jest rozszerzoną wersją If. Ogólna forma if-else jest następująca:

if (test-expression){True block of statements}Else{False block of statements}Statements;

W przypadku tego typu konstrukcji, jeśli wartość wyrażenia testowego jest prawdziwa, zostanie wykonany prawdziwy blok instrukcji. Jeśli wartość wyrażenia testowego jest fałszywa, zostanie wykonany fałszywy blok instrukcji. W każdym przypadku po wykonaniu kontrola zostanie automatycznie przeniesiona do instrukcji pojawiających się poza blokiem If.

Poniższe programy ilustrują użycie konstrukcji if-else:

Zainicjujemy zmienną z jakąś wartością i napiszemy program, który określi, czy wartość jest mniejsza niż dziesięć, czy większa niż dziesięć.

Zaczynajmy.

#includeint main(){int num=19;if(num<10){printf("The value is less than 10");}else{printf("The value is greater than 10");}return 0;}

Wynik:

The value is greater than 10

  1. Zainicjowaliśmy zmienną o wartości 19. Musimy sprawdzić, czy liczba jest większa czy mniejsza od 10 za pomocą programu „C”. Aby to zrobić, użyliśmy konstrukcji if-else.
  2. Tutaj podaliśmy warunek numer <10, ponieważ musimy porównać naszą wartość z 10.
  3. Jak widać, pierwszy blok jest zawsze prawdziwym blokiem, co oznacza, że ​​jeśli wartość wyrażenia testowego jest prawdziwa, zostanie wykonany pierwszy blok, którym jest If.
  4. Drugi blok to inny blok. Ten blok zawiera instrukcje, które zostaną wykonane, jeśli wartość wyrażenia testowego stanie się fałszywa. W naszym programie wartość num jest większa niż dziesięć, stąd warunek testowy staje się fałszywy iw przeciwnym razie blok jest wykonywany. Zatem nasze dane wyjściowe będą pochodzić z innego bloku else o nazwie „Wartość jest większa niż 10”. Po if-else program zakończy działanie z pomyślnym wynikiem.

W programowaniu w języku „C” możemy używać w sobie wielu konstrukcji if-else, nazywanych zagnieżdżaniem instrukcji if-else.

Wyrażenia warunkowe

Istnieje inny sposób wyrażenia instrukcji if-else przez wprowadzenie operatora ?: . W wyrażeniu warunkowym operator ?: Ma tylko jedną instrukcję powiązaną z if i else.

Na przykład:

#include int main() {int y;int x = 2;y = (x >= 6) ? 6 : x;/* This is equivalent to: if (x >= 5) y = 5; else y = x; */printf("y =%d ",y);return 0;}

Wynik :

y =2

Zagnieżdżone instrukcje if-else

Gdy wymagana jest seria decyzji, używane jest zagnieżdżanie if-else. Zagnieżdżanie oznacza używanie jednej konstrukcji if-else w innej.

Napiszmy program ilustrujący użycie zagnieżdżonych if-else.

#includeint main(){int num=1;if(num<10){if(num==1){printf("The value is:%d\n",num);}else{printf("The value is greater than 1");}}else{printf("The value is greater than 10");}return 0;}

Wynik:

The value is:1

Powyższy program sprawdza, czy liczba jest mniejsza czy większa niż 10 i wypisuje wynik przy użyciu zagnieżdżonej konstrukcji if-else.

  1. Po pierwsze, zadeklarowaliśmy zmienną num o wartości 1. Następnie użyliśmy konstrukcji if-else.
  2. W zewnętrznym warunku if-else, podany warunek sprawdza, czy liczba jest mniejsza niż 10. Jeśli warunek jest prawdziwy, wtedy i tylko wtedy wykona pętlę wewnętrzną. W tym przypadku warunek jest prawdziwy, dlatego blok wewnętrzny jest przetwarzany.
  3. W bloku wewnętrznym ponownie mamy warunek, który sprawdza, czy nasza zmienna zawiera wartość 1, czy nie. Gdy warunek jest spełniony, przetworzy blok If, w przeciwnym razie przetworzy blok else. W tym przypadku warunek jest prawdziwy, stąd jeśli wykonywany jest blok, a wartość jest drukowana na ekranie wyjściowym.
  4. Powyższy program wydrukuje wartość zmiennej i zakończy działanie.

Spróbuj zmienić wartość zmiennej, zobacz, jak zachowuje się program.

UWAGA: W zagnieżdżonych if-else musimy uważać na wcięcia, ponieważ w tym procesie zaangażowanych jest wiele konstrukcji if-else, więc trudno jest rozgryźć poszczególne konstrukcje. Odpowiednie wcięcie ułatwia czytanie programu.

Zagnieżdżone instrukcje Inaczej, jeśli

Zagnieżdżone else-if jest używane, gdy wymagane są decyzje wielościeżkowe.

Ogólna składnia instrukcji how else-if jest konstruowana w programowaniu w języku C jest następująca:

 if (test - expression 1) {statement1;} else if (test - expression 2) {Statement2;} else if (test - expression 3) {Statement3;} else if (test - expression n) {Statement n;} else {default;}Statement x;

Ten typ konstrukcji jest znany jako drabina „else-if”. Ten łańcuch ogólnie wygląda jak drabina, dlatego nazywany jest również drabiną „inaczej, jeśli”. Wyrażenia testowe są oceniane od góry do dołu. Za każdym razem, gdy zostanie znalezione prawdziwe wyrażenie testowe, wykonywana jest instrukcja z nim związana. Gdy wszystkie n wyrażeń testowych staną się fałszywe, wykonywana jest domyślna instrukcja else.

Zobaczmy rzeczywistą pracę za pomocą programu.

#includeint main(){int marks=83;if(marks>75){printf("First class");}else if(marks>65){printf("Second class");}else if(marks>55){printf("Third class");}else{printf("Fourth class");}return 0;}

Wynik:

First class

Powyższy program drukuje oceny zgodnie z ocenami uzyskanymi w teście. W powyższym programie wykorzystaliśmy konstrukcję drabinkową else-if.

  1. Zainicjowaliśmy zmienną ze znakami. W konstrukcji drabiny else-if zapewniliśmy różne warunki.
  2. Wartość ze znaczników zmiennej zostanie porównana z pierwszym warunkiem, ponieważ prawdą jest, że instrukcja z nią związana zostanie wydrukowana na ekranie wyjściowym.
  3. Jeśli pierwszy warunek testowy okaże się fałszywy, jest on porównywany z drugim warunkiem.
  4. Ten proces będzie kontynuowany do momentu obliczenia całego wyrażenia, w przeciwnym razie sterowanie wyjdzie z drabiny else-if i zostanie wydrukowana instrukcja domyślna.

Spróbuj zmodyfikować wartość i zwróć uwagę na zmianę w danych wyjściowych.

Podsumowanie

  • Instrukcje podejmowania decyzji lub rozgałęziania służą do wybierania jednej ścieżki na podstawie wyniku ocenianego wyrażenia.
  • Jest również nazywany instrukcjami sterującymi, ponieważ steruje przepływem wykonywania programu.
  • „C” zapewnia konstrukcje if, if-else dla oświadczeń decyzyjnych.
  • Możemy również zagnieżdżać jeśli-else w sobie, gdy trzeba przetestować wiele ścieżek.
  • Drabina else-if jest używana, gdy musimy sprawdzić różne sposoby w oparciu o wynik wyrażenia.