C Podmíněný příkaz: IF, IF Else a vnořený IF Else s příkladem

Co je podmíněný příkaz v C?

Podmíněné příkazy v C programování se používají k rozhodování na základě podmínek. Podmíněné příkazy se provádějí sekvenčně, pokud kolem příkazů není žádná podmínka. Pokud zadáte nějakou podmínku pro blok příkazů, může se tok provádění změnit na základě výsledku vyhodnoceného podmínkou. Tento proces se nazývá rozhodování v 'C.'

V programování 'C' jsou podmíněné příkazy možné pomocí následujících dvou konstrukcí:

1. Pokud prohlášení

2. Prohlášení If- else

Říká se mu také větvení, protože program rozhoduje, který příkaz provede na základě výsledku vyhodnocené podmínky.

Pokud prohlášení

Je to jeden z mocných podmíněných příkazů. Příkaz If je zodpovědný za úpravu toku provádění programu. Příkaz if se vždy používá s podmínkou. Podmínka je vyhodnocena jako první před provedením jakéhokoli příkazu v těle If. Syntaxe příkazu if je následující:

 if (condition) 
     instruction;

Podmínka se vyhodnotí jako pravdivá nebo nepravdivá. True je vždy nenulová hodnota a false je hodnota, která obsahuje nulu. Instrukce mohou být jednotlivé instrukce nebo blok kódu uzavřený složenými závorkami { }.

Následující program ilustruje použití if konstruktu v programování '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;
}

Výstup:

num1 is smaller than num2

Výše uvedený program ilustruje použití konstrukce if ke kontrole rovnosti dvou čísel.

Pokud prohlášení

  1. Ve výše uvedeném programu jsme inicializovali dvě proměnné s num1, num2 s hodnotou jako 1, 2 v tomto pořadí.
  2. Potom jsme použili if s testovacím výrazem ke kontrole, které číslo je nejmenší a které číslo je největší. V konstrukci if jsme použili relační výraz. Protože hodnota num1 je menší než num2, bude podmínka vyhodnocena jako true.
  3. Vypíše tedy příkaz uvnitř bloku If. Poté řízení přejde mimo blok a program bude ukončen s úspěšným výsledkem.

Relační Operatorů

C má šest relačních operátorů, které lze použít k formulaci booleovských výrazů pro rozhodování a testování podmínek, které vrací true nebo false :

< méně než

<= menší nebo rovno

> větší než

>= větší nebo rovno

== rovno

!= nerovná se

Všimněte si, že stejný test (==) se liší od operátoru přiřazení (=), protože je to jeden z nejčastějších problémů, kterým programátor čelí, když je míchá.

Například:

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

Výstup:

 You succeed

Mějte na paměti, že podmínka, která se vyhodnotí jako nenulová hodnota, je považována za pravdivou.

Například:

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

Výstup:

There is someone present in the classroom

Prohlášení If-Else

Prohlášení If-Else

Příkaz if-else is je rozšířenou verzí příkazu If. Obecná forma if-else je následující:

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

V tomto typu konstrukce, pokud je hodnota testovacího výrazu pravdivá, pak se provede pravdivý blok příkazů. Pokud je hodnota testovacího výrazu nepravdivá, provede se blok příkazů false. V každém případě se po provedení kontrola automaticky přenese na příkazy objevující se mimo blok If.

Následující programy ilustrují použití konstrukce if-else:


Inicializujeme proměnnou s nějakou hodnotou a napíšeme program, který určí, zda je hodnota menší než deset nebo větší než deset.

Začněme.

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

Výstup:

The value is greater than 10

Prohlášení If-Else

  1. Inicializovali jsme proměnnou s hodnotou 19. Zda je číslo větší nebo menší než 10, musíme zjistit pomocí programu 'C'. K tomu jsme použili konstrukci if-else.
  2. Zde jsme poskytli podmínku num<10, protože musíme porovnat naši hodnotu s 10.
  3. Jak můžete vidět, první blok je vždy pravdivý, což znamená, že pokud je hodnota testovacího výrazu pravdivá, bude proveden první blok, kterým je If.
  4. Druhý blok je jiný blok. Tento blok obsahuje příkazy, které budou provedeny, pokud se hodnota testovacího výrazu stane nepravdivou. V našem programu je hodnota num větší než deset, proto se testovací podmínka stane nepravdivou a jinak se provede blok. Náš výstup tedy bude z jiného bloku, který je „Hodnota je větší než 10“. Po if-else se program ukončí s úspěšným výsledkem.

V programování 'C' můžeme použít více konstrukcí if-else v sobě, které se označují jako vnoření příkazů if-else.

Podmíněné výrazy

Existuje další způsob, jak vyjádřit příkaz if-else zavedením ?: operátor. V podmíněném výrazu ?: operátor má pouze jeden příkaz spojený s if a else.

Například:

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

Výstup:

y =2

Vnořené příkazy If-else

Když je vyžadována série rozhodnutí, použije se vnořený if-else. Vnoření znamená použití jednoho if-else konstruktu v jiném.

Pojďme napsat program, který ilustruje použití vnořených 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;
}

Výstup:

The value is:1

Výše uvedený program zkontroluje, zda je číslo menší nebo větší než 10 a vytiskne výsledek pomocí vnořené konstrukce if-else.

Vnořené příkazy If-else

  1. Nejprve jsme deklarovali proměnnou num s hodnotou 1. Poté jsme použili konstrukci if-else.
  2. Ve vnějším if-else zadaná podmínka zkontroluje, zda je číslo menší než 10. Pokud je podmínka pravdivá, pak a teprve potom provede vnitřní smyčka. V tomto případě je podmínka pravdivá a vnitřní blok je zpracován.
  3. Ve vnitrobloku máme opět podmínku, která kontroluje, zda naše proměnná obsahuje hodnotu 1 nebo ne. Když je podmínka pravdivá, pak zpracuje blok If, jinak zpracuje blok else. V tomto případě je podmínka pravdivá, proto se na výstupní obrazovce vytiskne Pokud je blok proveden a hodnota se vytiskne.
  4. Výše uvedený program vypíše hodnotu a proměnlivý a s úspěchem odejít.

Zkuste změnit hodnotu proměnné a uvidíte, jak se program chová.

POZNÁMKA: Ve vnořených if-else musíme být opatrní s odsazením, protože do tohoto procesu je zapojeno více konstruktů if-else, takže je obtížné zjistit jednotlivé konstrukty. Správné odsazení usnadňuje čtení programu.

Vnořené příkazy Else-if

Vnořený else-if se používá, když jsou vyžadována vícecestná rozhodnutí.

Obecná syntaxe toho, jak jinak-jestli jsou žebříky konstruovány v programování „C“, je následující:

 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;

Tento typ struktury je známý jako žebřík else-if. Tento řetěz obecně vypadá jako žebřík, proto se mu také říká jiný žebřík. Testovací výrazy se vyhodnocují shora dolů. Kdykoli je nalezen pravdivý testovací výraz, provede se příkaz s ním spojený. Když se všech n testovacích výrazů stane nepravdivým, provede se výchozí příkaz else.

Podívejme se na samotnou práci s 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;
}

Výstup:

First class

Výše uvedený program vytiskne známku podle známek dosažených v testu. Ve výše uvedeném programu jsme použili konstrukci žebříčku else-if.

Vnořené příkazy Else-if

  1. Inicializovali jsme proměnnou se značkami. Ve struktuře else-if žebříčku jsme poskytli různé podmínky.
  2. Hodnota ze značek proměnných bude porovnána s první podmínkou, protože je pravda, že výrok s ní spojený bude vytištěn na výstupní obrazovce.
  3. Pokud se první testovací podmínka ukáže jako nepravdivá, porovná se s druhou podmínkou.
  4. Tento proces bude pokračovat, dokud nebude vyhodnocen výraz all, jinak kontrola opustí žebříček else-if a vytiskne se výchozí příkaz.

Zkuste upravit hodnotu a všimněte si změny ve výstupu.

Shrnutí

  • Příkazy rozhodování nebo větvení se používají k výběru jedné cesty na základě výsledku vyhodnocovaného výrazu.
  • Nazývá se také jako řídicí příkazy, protože řídí tok provádění programu.
  • 'C' poskytuje konstrukty if, if-else pro výroky rozhodování.
  • Můžeme také vnořit if-else do sebe, když je třeba testovat více cest.
  • Žebříček else-if se používá, když musíme kontrolovat různé způsoby na základě výsledku výrazu.