logo

Podejmowanie decyzji w C (if , if..else, Zagnieżdżone if, if-else-if )

The Instrukcje warunkowe (znane również jako struktury kontroli decyzji), takie jak if, if else, switch itp. są używane do celów decyzyjnych w programach C.

Są one również znane jako instrukcje podejmowania decyzji i służą do oceny jednego lub większej liczby warunków oraz podjęcia decyzji, czy wykonać zestaw instrukcji, czy nie. Te instrukcje decyzyjne w językach programowania decydują o kierunku wykonywania programu.



Potrzeba instrukcji warunkowych

W prawdziwym życiu zdarzają się sytuacje, kiedy musimy podjąć pewne decyzje i na podstawie tych decyzji decydujemy, co powinniśmy zrobić dalej. Podobne sytuacje zdarzają się również w programowaniu, gdzie musimy podjąć pewne decyzje i na podstawie tych decyzji wykonamy kolejny blok kodu. Na przykład w C, jeśli wystąpi x, wykonaj y, w przeciwnym razie wykonaj z. Może być również wiele warunków, jak w C, jeśli wystąpi x, wykonaj p, w przeciwnym razie, jeśli wystąpi warunek y, wykonaj q, w przeciwnym razie wykonaj r. Ten warunek języka C else-if jest jednym z wielu sposobów importowania wielu warunków.

Rodzaje instrukcji warunkowych w C

Poniżej znajdują się instrukcje decyzyjne dostępne w języku C:

  1. jeśli oświadczenie
  2. Instrukcja if-else
  3. Zagnieżdżona instrukcja if
  4. jeśli-else-if Drabina
  5. instrukcja przełącznika
  6. Operator warunkowy
  7. Instrukcje skoku:
    • przerwa
    • Kontynuować
    • iść do
    • powrót

Omówmy każdy z nich jeden po drugim.



1. jeśli w C

The jeśli stwierdzenie jest najprostszym stwierdzeniem służącym do podejmowania decyzji. Służy do decydowania, czy dana instrukcja lub blok instrukcji zostanie wykonana, czy nie, tj. jeśli określony warunek jest prawdziwy, wówczas blok instrukcji zostanie wykonany, w przeciwnym razie nie.

Składnia instrukcji if

  if  (  condition  )  {    // Statements to execute if     // condition is true  }>

Tutaj stan po ocenie będzie albo prawdą, albo fałszem. C if instrukcja akceptuje wartości logiczne – jeśli wartość jest prawdziwa, wykona blok instrukcji znajdujący się pod nią, w przeciwnym razie nie. Jeśli nie podamy nawiasów klamrowych „{” i „}” po if(warunek), wówczas domyślnie instrukcja if uzna, że ​​pierwsza instrukcja znajdująca się bezpośrednio poniżej znajduje się w jej bloku.

Schemat blokowy instrukcji if

jeśli schemat blokowy

Schemat blokowy instrukcji if



Przykład if w C

C


ipconfig na Ubuntu



// C program to illustrate If statement> #include> > int> main()> {> >int> i = 10;> > >if> (i>15) {> >printf>(>'10 is greater than 15'>);> >}> > >printf>(>'I am Not in if'>);> }>

>

>

Wyjście

I am Not in if>

Ponieważ warunek występujący w instrukcji if jest fałszywy. Zatem blok poniżej instrukcji if nie jest wykonywany.

2. if-else w C

The Jeśli Sama instrukcja mówi nam, że jeśli warunek jest prawdziwy, wykona blok instrukcji, a jeśli warunek jest fałszywy, nie. Ale co, jeśli chcemy zrobić coś innego, gdy warunek jest fałszywy? Nadchodzi C w przeciwnym razie oświadczenie. Możemy skorzystać z w przeciwnym razie oświadczenie z Jeśli instrukcja wykonująca blok kodu, gdy warunek jest fałszywy. The instrukcja if-else składa się z dwóch bloków, jednego dla wyrażenia fałszywego i jednego dla wyrażenia prawdziwego.

Składnia if else w C

  if   (  condition  ) {     // Executes this block if     // condition is true  }   else  {    // Executes this block if     // condition is false  }>

Schemat blokowy instrukcji if-else

jeśli jeszcze schemat blokowy

Schemat blokowy „jeśli jeszcze”.

Przykład if-else

C




// C program to illustrate If statement> #include> > int> main()> {> >int> i = 20;> > >if> (i <15) {> > >printf>(>'i is smaller than 15'>);> >}> >else> {> > >printf>(>'i is greater than 15'>);> >}> >return> 0;> }>

>

>

Wyjście

i is greater than 15>

Blok kodu następujący po w przeciwnym razie instrukcja jest wykonywana jako warunek występujący w instrukcji Jeśli stwierdzenie jest fałszywe.

3. Zagnieżdżone if-else w C

Zagnieżdżona instrukcja if w C jest instrukcją if, która jest celem innej instrukcji if. Zagnieżdżone instrukcje if oznaczają instrukcję if wewnątrz innej instrukcji if. Tak, C pozwala nam zagnieżdżać instrukcje if w instrukcjach if, tj. możemy umieścić instrukcję if w innej instrukcji if.

Składnia zagnieżdżonego if-else

  if   (  condition1  )  {    // Executes when condition1 is true     if   (  condition2  )   {     // Executes when condition2 is true   }    else   {    // Executes when condition2 is false  }>

Schemat blokowy zagnieżdżonego if-else

Schemat blokowy zagnieżdżonego if-else

Przykład zagnieżdżonego if-else

C




// C program to illustrate nested-if statement> #include> > int> main()> {> >int> i = 10;> > >if> (i == 10) {> >// First if statement> >if> (i <15)> >printf>(>'i is smaller than 15 '>);> > >// Nested - if statement> >// Will only be executed if statement above> >// is true> >if> (i <12)> >printf>(>'i is smaller than 12 too '>);> >else> >printf>(>'i is greater than 15'>);> >}> > >return> 0;> }>

>

algorytmy wyszukiwania

>

Wyjście

i is smaller than 15 i is smaller than 12 too>

4. if-else-if Drabina w C

The if else if instrukcje są używane, gdy użytkownik musi wybrać jedną z wielu opcji. Instrukcje C if są wykonywane od góry do dołu. Gdy tylko jeden z warunków kontrolujących if jest prawdziwy, wykonywana jest instrukcja z nim związana, a reszta drabiny C else-if jest pomijana. Jeśli żaden z warunków nie jest spełniony, zostanie wykonana ostatnia instrukcja else. drabinka if-else-if jest podobna do instrukcji switch.

Składnia drabinki if-else-if

  if   (  condition  )    statement;    else if   (  condition  )    statement;  . .   else     statement;>

Schemat blokowy drabinki if-else-if

schemat blokowy instrukcji if-else-if

Schemat blokowy if-else-if

Przykład drabinki if-else-if

C




// C program to illustrate nested-if statement> #include> > int> main()> {> >int> i = 20;> > >if> (i == 10)> >printf>(>'i is 10'>);> >else> if> (i == 15)> >printf>(>'i is 15'>);> >else> if> (i == 20)> >printf>(>'i is 20'>);> >else> >printf>(>'i is not present'>);> }>

>

>

Wyjście

i is 20>

5. instrukcja switch w C

The instrukcja case switch jest alternatywą dla drabinki if else if, której można użyć do wykonania kodu warunkowego w oparciu o wartość zmiennej określonej w instrukcji switch. Blok przełączający składa się z przypadków, które należy wykonać w oparciu o wartość zmiennej przełączającej.

Składnia przełącznika

  switch   (  expression  ) {    case     value1:     statements;     case    value2:     statements;   ....  ....  ....    default:     statements;  }>

Notatka: Wyrażenie przełączające powinno mieć wartość całkowitą lub znak. Nie może ocenić żadnego innego typu danych.

Schemat blokowy przełącznika

schemat blokowy satysfakcji przełącznika

Schemat blokowy przełącznika w C

Przykład instrukcji switch

C




// C Program to illustrate the use of switch statement> #include> > int> main()> {> >// variable to be used in switch statement> >int> var = 2;> > >// declaring switch cases> >switch> (var) {> >case> 1:> >printf>(>'Case 1 is executed'>);> >break>;> >case> 2:> >printf>(>'Case 2 is executed'>);> >break>;> >default>:> >printf>(>'Default Case is executed'>);> >break>;> >}> > >return> 0;> }>

jak sprawdzić rozmiar mojego monitora
>

>

Wyjście

Case 2 is executed>

6. Operator warunkowy w C

The operatora warunkowego służy do dodawania kodu warunkowego w naszym programie. Działa podobnie do instrukcji if-else. Jest również znany jako operator trójskładnikowy, ponieważ działa na trzech operandach.

Składnia operatora warunkowego

(  condition  )   ?     [true_statements]     :     [false_statements]  ;>

Schemat blokowy operatora warunkowego

schemat blokowy operatorów warunkowych

Schemat blokowy operatora warunkowego

Przykład operatora warunkowego

C




// C Program to illustrate the use of conditional operator> #include> > // driver code> int> main()> {> > >int> var;> >int> flag = 0;> > >// using conditional operator to assign the value to var> >// according to the value of flag> >var = flag == 0 ? 25 : -25;> >printf>(>'Value of var when flag is 0: %d '>, var);> > >// changing the value of flag> >flag = 1;> >// again assigning the value to var using same statement> >var = flag == 0 ? 25 : -25;> >printf>(>'Value of var when flag is NOT 0: %d'>, var);> > >return> 0;> }>

>

>

Wyjście

Value of var when flag is 0: 25 Value of var when flag is NOT 0: -25>

7. Instrukcje skoku w C

Instrukcje te są używane w języku C w celu zapewnienia bezwarunkowego przepływu kontroli pomiędzy funkcjami programu. Obsługują cztery typy instrukcji skoku:

A) przerwa

Ta instrukcja sterująca pętlą służy do zakończenia pętli. Tak szybko jak przerwa instrukcja zostanie napotkana w pętli, iteracje pętli zatrzymują się w tym miejscu, a sterowanie wraca z pętli natychmiast do pierwszej instrukcji po pętli.

Składnia przerwy

break;>

Zasadniczo instrukcji break używa się w sytuacjach, gdy nie jesteśmy pewni faktycznej liczby iteracji pętli lub chcemy zakończyć pętlę w oparciu o jakiś warunek.

przerwać schemat blokowy

Przykład przerwy

C




// C program to illustrate> // to show usage of break> // statement> #include> > void> findElement(>int> arr[],>int> size,>int> key)> {> >// loop to traverse array and search for key> >for> (>int> i = 0; i if (arr[i] == key) { printf('Element found at position: %d', (i + 1)); break; } } } int main() { int arr[] = { 1, 2, 3, 4, 5, 6 }; // no of elements int n = 6; // key to be searched int key = 3; // Calling function to find the key findElement(arr, n, key); return 0; }>

>

>

Wyjście

Element found at position: 3>

B) Kontynuować

Ta instrukcja sterująca pętlą działa podobnie jak instrukcja break. The Kontynuować oświadczenie jest przeciwieństwem przerwy oświadczenie zamiast zakończyć pętlę, wymusza wykonanie kolejnej iteracji pętli.
Jak sama nazwa wskazuje, instrukcjacontinue wymusza kontynuację pętli lub wykonanie następnej iteracji. Kiedy w pętli zostanie wykonana instrukcjacontinue, kod wewnątrz pętli następujący po instrukcjicontinue zostanie pominięty i rozpocznie się następna iteracja pętli.

Składnia kontynuuj

continue;>

Schemat blokowy Kontynuuj

Schemat blokowy instrukcji C kontynuuj

Przykład kontynuacji

C




statyczne słowo kluczowe w Javie

// C program to explain the use> // of continue statement> #include> > int> main()> {> >// loop from 1 to 10> >for> (>int> i = 1; i <= 10; i++) {> > >// If i is equals to 6,> >// continue to next iteration> >// without printing> >if> (i == 6)> >continue>;> > >else> >// otherwise print the value of i> >printf>(>'%d '>, i);> >}> > >return> 0;> }>

>

>

Wyjście

1 2 3 4 5 7 8 9 10>

Jeśli utworzysz zmienną w if-else w C, będzie ona lokalna tylko dla tego bloku if/else. Możesz używać zmiennych globalnych wewnątrz bloku if/else. Jeśli nazwa zmiennej utworzonej w if/else jest taka sama jak nazwa dowolnej zmiennej globalnej, wówczas priorytet zostanie nadany „zmiennej lokalnej”.

C




#include> > int> main()> {> > >int> gfg = 0;>// local variable for main> >printf>(>'Before if-else block %d '>, gfg);> >if> (1) {> >int> gfg = 100;>// new local variable of if block> >printf>(>'if block %d '>, gfg);> >}> >printf>(>'After if block %d'>, gfg);> >return> 0;> }>

>

>

Wyjście

Before if-else block 0 if block 100 After if block 0>

C) iść do

The muszę oświadczenie w języku C, nazywana także instrukcją bezwarunkowego skoku, może być używana do przeskakiwania z jednego punktu do drugiego w ramach funkcji.

Składnia goto

  Syntax1 | Syntax2  ----------------------------   goto     label;   |   label:   . | . . | . . | .   label:   |   goto     label;>

W powyższej składni pierwsza linia mówi kompilatorowi, aby przeszedł do instrukcji oznaczonej jako etykieta lub do niej przeskoczył. W tym przypadku etykieta jest identyfikatorem zdefiniowanym przez użytkownika, który wskazuje instrukcję docelową. Instrukcja znajdująca się bezpośrednio po „etykiecie:” jest instrukcją przeznaczenia. Etykieta „label:” może również pojawić się przed instrukcją „goto label;” w powyższej składni.

Schemat blokowy instrukcji goto

Przykłady goto

C




// C program to print numbers> // from 1 to 10 using goto> // statement> #include> > // function to print numbers from 1 to 10> void> printNumbers()> {> >int> n = 1;> label:> >printf>(>'%d '>, n);> >n++;> >if> (n <= 10)> >goto> label;> }> > // Driver program to test above function> int> main()> {> >printNumbers();> >return> 0;> }>

>

>

Wyjście

1 2 3 4 5 6 7 8 9 10>

D) powrót

The powrót w C zwraca przebieg wykonania do funkcji, z której jest ona wywoływana. Ta instrukcja nie wymaga koniecznie żadnych instrukcji warunkowych. Gdy tylko instrukcja zostanie wykonana, działanie programu natychmiast się zatrzymuje i zwraca kontrolę z miejsca, w którym została wywołana. Instrukcja return może, ale nie musi, zwrócić cokolwiek w przypadku funkcji void, ale w przypadku funkcji innej niż void musi zostać zwrócona wartość zwracana.

Schemat zwrotu

schemat powrotu

Schemat przepływu powrotu

Składnia zwrotu

  return    [expression]  ;>

Przykład zwrotu

C




// C code to illustrate return> // statement> #include> > // non-void return type> // function to calculate sum> int> SUM(>int> a,>int> b)> {> >int> s1 = a + b;> >return> s1;> }> > // returns void> // function to print> void> Print(>int> s2)> {> >printf>(>'The sum is %d'>, s2);> >return>;> }> > int> main()> {> >int> num1 = 10;> >int> num2 = 10;> >int> sum_of = SUM(num1, num2);> >Print(sum_of);> >return> 0;> }>

nieokreślone nachylenie

>

>

Wyjście

The sum is 20>