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.

Jeśli instrukcja

  1. W powyższym programie zainicjowaliśmy dwie zmienne za pomocą num1, num2 o wartościach 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. Użyliśmy wyrażenia relacyjnego w konstrukcji if. Ponieważ wartość Num1 jest mniejsza niż Num2, warunek zostanie uznany za prawdziwy.
  3. 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

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

Instrukcja if-else

  1. 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.
  2. Tutaj podaliśmy warunek num<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, wówczas zostanie wykonany pierwszy blok, czyli If.
  4. 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.

Zagnieżdżone instrukcje if-else

  1. Najpierw zadeklarowaliśmy zmienną num o wartości 1. Następnie użyliśmy konstrukcji if-else.
  2. 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.
  3. 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.
  4. 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.

Zagnieżdżone instrukcje Else-if

  1. Zainicjowaliśmy zmienną znakami. W strukturze drabinkowej else-if zapewniliśmy różne warunki.
  2. Wartość ze znaczników zmiennych zostanie porównana z pierwszym warunkiem, ponieważ stwierdzenie z nią powiązane zostanie wydrukowane na ekranie wyjściowym.
  3. Jeśli pierwszy warunek testowy okaże się fałszywy, wówczas jest on porównywany z drugim warunkiem.
  4. 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.