C Instrukcja warunkowa: JEŚLI, JEŚLI Inaczej i zagnieżdżona JEŚLI Inaczej z przykładem
Co to jest instrukcja warunkowa w języku C?
Instrukcje warunkowe w C programowanie służy do podejmowania decyzji w oparciu o warunki. Instrukcje warunkowe są wykonywane sekwencyjnie, jeśli wokół instrukcji nie ma warunku. Jeśli umieścisz jakiś warunek w bloku instrukcji, przebieg wykonywania może się zmienić w zależności od wyniku ocenionego przez warunek. Proces ten nazywany jest podejmowaniem decyzji w „C”.
W programowaniu w języku C instrukcje warunkowe są możliwe przy pomocy 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 ocenionego warunku.
Jeśli oświadczenie
Jest to jedna z potężnych instrukcji warunkowych. Instrukcja if odpowiada za modyfikację przebiegu wykonywania programu. Instrukcja if jest zawsze używana z warunkiem. Warunek jest oceniany najpierw przed wykonaniem jakiejkolwiek instrukcji znajdującej się w treści If. Składnia instrukcji if jest następująca:
if (condition) instruction;
Warunek ma wartość true lub false. Prawda jest zawsze wartością różną od zera, a fałsz jest wartością zawierającą zero. Instrukcje mogą mieć postać pojedynczej instrukcji lub bloku kodu ujętego w nawiasy klamrowe { }.
Poniższy program ilustruje użycie konstrukcji if w programowaniu w języku C:
#include<stdio.h> int main() { int num1=1; int num2=2; if(num1<num2) //test-condition { printf("num1 is smaller than num2"); } return 0; }
Wyjście:
num1 is smaller than num2
Powyższy program ilustruje użycie konstrukcji if do sprawdzenia równości dwóch liczb.
- W powyższym programie zainicjowaliśmy dwie zmienne za pomocą num1, num2 o wartościach odpowiednio 1, 2.
- Następnie użyliśmy if z wyrażeniem testowym, aby sprawdzić, która liczba jest najmniejsza, a która największa. Użyliśmy wyrażenia relacyjnego w konstrukcji if. Ponieważ wartość Num1 jest mniejsza niż Num2, warunek zostanie uznany za prawdziwy.
- W ten sposób wydrukuje instrukcję wewnątrz bloku If. Następnie sterowanie wyjdzie poza blok i program zakończy się pomyślnym wynikiem.
Relacyjny Operatorsy
Język C ma sześć operatorów relacyjnych, które można wykorzystać do sformułowania wyrażenia boolowskiego służącego do podejmowania decyzji i testowania warunków, zwracającego wartość true (prawda) lub false (fałsz):
< mniej niż
<= mniejszy lub równy
> większe niż
>= większy lub równy
== równe
!= nierówny
Należy zauważyć, że test równości (==) różni się od operatora przypisania (=), ponieważ jest to jeden z najczęstszych problemów, z jakimi spotykają się programiści, gdy je mylą.
Na przykład:
int x = 41; x =x+ 1; if (x == 42) { printf("You succeed!");}
wyjście:
You succeed
Należy pamiętać, że warunek, który ma wartość różną od zera, jest uważany za prawdziwy.
Na przykład:
int present = 1; if (present) printf("There is someone present in the classroom \n");
wyjście:
There is someone present in the classroom
Instrukcja If-else
Instrukcja if-else is jest rozszerzoną wersją instrukcji If. Ogólna forma if-else jest następująca:
if (test-expression) { True block of statements } Else { False block of statements } Statements;
w tego typu konstrukcji, jeśli wartość wyrażenia testowego ma wartość true, wówczas zostanie wykonany prawdziwy blok instrukcji. Jeśli wartość wyrażenia testowego jest fałszywa, wówczas zostanie wykonany fałszywy blok instrukcji. W każdym przypadku po wykonaniu kontrola zostanie automatycznie przeniesiona na instrukcje znajdujące się poza blokiem If.
Poniższe programy ilustrują użycie konstrukcji if-else:
Zainicjujemy zmienną pewną wartością i napiszemy program sprawdzający, czy wartość jest mniejsza niż dziesięć, czy większa niż dziesięć.
Zaczynajmy.
#include<stdio.h> int main() { int num=19; if(num<10) { printf("The value is less than 10"); } else { printf("The value is greater than 10"); } return 0; }
Wyjście:
The value is greater than 10
- Zainicjalizowaliśmy zmienną o wartości 19. Musimy sprawdzić, czy liczba jest większa, czy mniejsza od 10, za pomocą programu „C”. W tym celu użyliśmy konstrukcji if-else.
- Tutaj podaliśmy warunek num<10, ponieważ musimy porównać naszą wartość z 10.
- Jak widać, pierwszy blok jest zawsze prawdziwym blokiem, co oznacza, że jeśli wartość wyrażenia testowego jest prawdziwa, wówczas zostanie wykonany pierwszy blok, czyli If.
- Drugi blok to blok else. Blok ten 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ęć, dlatego warunek testowy staje się fałszywy i w przeciwnym razie wykonywany jest blok. Zatem nasze dane wyjściowe będą pochodzić z bloku else, który brzmi: „Wartość jest większa niż 10”. Po if-else program zakończy się pomyślnym wynikiem.
W programowaniu w języku C możemy używać wielu konstrukcji if-else w sobie, co określa się mianem zagnieżdżania instrukcji if-else.
Wyrażenia warunkowe
Innym sposobem wyrażenia instrukcji if-else jest wprowadzenie ?: operator. W wyrażeniu warunkowym ?: Operator ma tylko jedno polecenie skojarzone z if i else.
Na przykład:
#include <stdio.h> 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;}
wyjście:
y =2
Zagnieżdżone instrukcje if-else
Gdy wymagana jest seria decyzji, używana jest zagnieżdżona instrukcja if-else. Zagnieżdżanie oznacza użycie jednej konstrukcji if-else w innej.
Napiszmy program ilustrujący użycie zagnieżdżonej instrukcji if-else.
#include<stdio.h> int 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; }
Wyjście:
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.
- Najpierw zadeklarowaliśmy zmienną num o wartości 1. Następnie użyliśmy konstrukcji if-else.
- W zewnętrznym if-else podany warunek sprawdza, czy liczba jest mniejsza niż 10. Jeśli warunek jest prawdziwy, wtedy i tylko wtedy zostanie wykonany Pętla wewnętrzna. W tym przypadku warunek jest spełniony, dlatego przetwarzany jest blok wewnętrzny.
- W bloku wewnętrznym mamy ponownie warunek, który sprawdza, czy nasza zmienna zawiera wartość 1, czy nie. Gdy warunek jest prawdziwy, wówczas przetworzy blok If, w przeciwnym razie przetworzy blok else. W tym przypadku warunek jest prawdziwy, zatem blok If a jest wykonywany, a wartość jest drukowana na ekranie wyjściowym.
- Powyższy program wypisze wartość a zmienna i wyjdź z sukcesem.
Spróbuj zmienić wartość zmiennej i zobacz jak zachowa się program.
UWAGA: W zagnieżdżonych konstrukcjach if-else musimy zachować ostrożność przy wcięciach, ponieważ w proces ten zaangażowanych jest wiele konstrukcji if-else, więc znalezienie poszczególnych konstrukcji staje się trudne. Odpowiednie wcięcia ułatwiają odczytanie programu.
Zagnieżdżone instrukcje Else-if
Zagnieżdżony else-if jest używany, gdy wymagane są decyzje wielościeżkowe.
Ogólna składnia konstrukcji drabin 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 struktury nazywany jest drabiną else-if. Łańcuch ten ogólnie wygląda jak drabina, dlatego nazywany jest również drabiną else-if. Wyrażenia testowe są oceniane od góry do dołu. Jeśli zostanie znalezione prawdziwe wyrażenie testowe, wykonywana jest powiązana z nim instrukcja. Kiedy wszystkie n wyrażeń testowych stanie się fałszywe, wykonywana jest domyślna instrukcja else.
Przyjrzyjmy się faktycznej pracy z pomocą programu.
#include<stdio.h> int 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; }
Wyjście:
First class
Powyższy program drukuje ocenę na podstawie ocen zdobytych na teście. W powyższym programie użyliśmy konstrukcji drabinkowej else-if.
- Zainicjowaliśmy zmienną znakami. W strukturze drabinkowej else-if zapewniliśmy różne warunki.
- Wartość ze znaczników zmiennych zostanie porównana z pierwszym warunkiem, ponieważ stwierdzenie z nią powiązane zostanie wydrukowane na ekranie wyjściowym.
- Jeśli pierwszy warunek testowy okaże się fałszywy, wówczas jest on porównywany z drugim warunkiem.
- Proces ten będzie się powtarzał, aż do momentu, gdy zostanie obliczone całe wyrażenie; w przeciwnym razie sterowanie wyjdzie poza drabinkę else-if i zostanie wydrukowane polecenie default.
Spróbuj zmodyfikować wartość i zwróć uwagę na zmianę na wyjściu.
Podsumowanie
- Instrukcje podejmowania decyzji lub rozgałęziania służą do wybierania jednej ścieżki na podstawie wyniku ocenianego wyrażenia.
- Nazywa się je również instrukcjami kontrolnymi, ponieważ kontroluje przebieg wykonywania programu.
- „C” zapewnia konstrukcje if, if-else dla instrukcji podejmowania decyzji.
- Możemy także zagnieżdżać if-else w sobie, gdy trzeba przetestować wiele ścieżek.
- Drabina else-if jest używana, gdy musimy sprawdzić różne sposoby na podstawie wyniku wyrażenia.