Tingimuslaused C-s: If, Else, Nested If näitega

⚡ Nutikas kokkuvõte

C-keele tingimuslaused kontrollivad programmi voogu, käivitades koodiplokke ainult siis, kui testitud tingimus annab tulemuseks tõese tulemuse, võimaldades otsuste langetamist if, if-else, pesastatud ja else-if redelkonstruktsioonide abil.

  • 🔤 Kui avaldus: if-lause käivitab oma bloki ainult siis, kui tingimus on nullist erinev tõene väärtus, samas kui null tähendab väärat väärtust.
  • 🔀 Kui-muul juhul: if-else konstruktsioon lisab haru „false“, käivitades ühe ploki, kui tingimus on tõene, ja teise, kui see on väär.
  • 🇧🇷 Relatsioonioperaatorid: Kuus operaatorit (<, <=, >, >=, ==, !=) moodustavad Boole'i ​​avaldised, mida iga tingimus testib.
  • 🪜 Muidu-kui-redel: Pesastatud else-if redel kontrollib mitut avaldist ülevalt alla ja käivitab esimese tõelise haru või vaikimisi else'i.
  • ❓ Kolmekomponentne operaator: Tingimusavaldis ?: kirjutab kompaktse if-else väärtuse, mis tagastab ühe kahest väärtusest ühel real.
  • 🤖 AI abi: GitHub Copilot mustandab ja vaatab üle if-else loogika, märgistab puuduvad sulud ja pakub välja puhtamaid tingimusi.

C tingimuslause: IF, IF Else ja Nested IF Else

Mis on tingimuslause C-s?

C-keeles kasutatakse tingimuslauseid otsuste langetamiseks tingimuste põhjal. Tingimuslaused täidetakse järjestikku, kui lausete ümber pole tingimust. Kui lauseplokile on seatud mingi tingimus, võib täitmisvoog muutuda tingimuse poolt hinnatud tulemuse põhjal. Seda protsessi nimetatakse C-keeles otsuste langetamiseks.

Erinevalt tsüklid C-s mis korduvat koodi, tingimuslaused valivad ühe tee.

'C' programmeerimisel on tingimuslaused võimalikud kahe järgmise konstruktsiooni abil:

  1. Kui avaldus
  2. If-else lause

Seda nimetatakse ka hargnemiseks, kuna programm otsustab hinnatud tingimuse tulemuse põhjal, millist lauset täita.

Kui avaldus

See on üks võimsamaid tingimuslauseid. If avaldus vastutab programmi täitmise voo muutmise eest. Kui lauset kasutatakse alati tingimusega. Tingimust hinnatakse kõigepealt enne mis tahes avalduse täitmist Ifi kehas. If-lause süntaks on järgmine:

 if (condition) 
     instruction;

Tingimust hinnatakse kas tõeseks või vääraks. Tõene on alati nullist erinev väärtus ja väär on väärtus, mis sisaldab nulli. Juhised võivad olla üks käsk või koodiplokk, mis on ümbritsetud lokkis sulgudega { }.

Järgmine programm illustreerib if-konstruktsiooni kasutamist "C" programmeerimisel:

#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äljund:

num1 is smaller than num2

Ülaltoodud programm illustreerib if-konstruktsiooni kasutamist kahe arvu võrdsuse kontrollimiseks.

Kui-lause vooskeem C-s

  1. Ülaltoodud programmis oleme lähtestanud kaks muutujat numbritega num1, num2 väärtusega vastavalt 1, 2.
  2. Seejärel kasutasime test-avaldisega if-i, et kontrollida, milline arv on väikseim ja milline suurim. Oleme kasutanud relatsiooniavaldist if-konstruktsioonis. Kuna num1 väärtus on väiksem kui num2, hinnatakse tingimust tõeseks.
  3. Seega prindib see avalduse Ifi ploki sisse. Pärast seda läheb juhtimine blokist välja ja programm lõpetatakse eduka tulemusega.

Suhteline Operatorse

C-keeles on kuus relatsioonioperaatorit, mida saab kasutada otsuste tegemiseks ja tingimuste testimiseks mõeldud Boole'i ​​avaldise formuleerimiseks, mis tagastab väärtuse tõene või väär:

  • < — vähem kui
  • <= — väiksem või võrdne
  • > — suurem kui
  • >= — suurem või võrdne
  • == — võrdne
  • != — mitte võrdne

Pange tähele, et võrdne test (==) erineb määramise operaatorist (=), kuna see on üks levinumaid probleeme, millega programmeerija neid segades kokku puutub.

Näiteks:

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

Väljund:

 You succeed

Pidage meeles, et tingimust, mille väärtus on nullist erinev, loetakse tõeseks.

Näiteks:

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

Väljund:

There is someone present in the classroom

If-Else avaldus

C If-Else lause vooskeem

if-else lause on If lause laiendatud versioon. if-else lause üldine kuju on järgmine:

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

Seda tüüpi konstruktsiooni puhul, kui test-avaldise väärtus on tõene, siis käivitatakse lauseplokk „tõene“. Kui test-avaldise väärtus on väär, siis käivitatakse lauseplokk „väär“. Igal juhul kantakse pärast käivitamist juhtimine automaatselt üle lausetele, mis asuvad väljaspool If-lause plokki.

Järgmised programmid illustreerivad konstruktsiooni if-else kasutamist:

Initsialiseerime muutuja mõne väärtusega ja kirjutame programmi, mis määrab, kas väärtus on väiksem kui kümme või suurem kui kümme.

Alustame.

#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äljund:

The value is greater than 10

Näide If-Else lause väljundist C-s

  1. Oleme initsialiseerinud muutuja väärtusega 19. Peame programmi C abil välja selgitama, kas arv on suurem või väiksem kui 10. Selleks oleme kasutanud if-else konstruktsiooni.
  2. Siin oleme esitanud tingimuse num<10, kuna peame oma väärtust võrdlema 10-ga.
  3. Nagu näete, on esimene plokk alati tõene plokk, mis tähendab, et kui test-avaldise väärtus on tõene, siis käivitatakse esimene plokk, mis on If.
  4. Teine plokk on muu plokk. See plokk sisaldab avaldusi, mis käivitatakse, kui test-avaldise väärtus muutub vääraks. Meie programmis on num väärtus suurem kui kümme, seega muutub testitingimus vääraks ja vastasel juhul käivitatakse plokk. Seega pärineb meie väljund muust plokist, mis on "Väärtus on suurem kui 10". Pärast kui-muidu programm lõppeb eduka tulemusega.

"C" programmeerimises saame kasutada üksteise sees mitut if-else konstruktsiooni, mida nimetatakse if-else lausete pesastamiseks.

Tingimuslikud väljendid

Teine viis if-else lause väljendamiseks on ?: operaatori kasutuselevõtt. Tingimusavaldises on ?: operaatoril ainult üks lause, mis on seotud if ja else operaatoritega.

Näiteks:

#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äljund:

y =2

Pesastatud If-else avaldused

Kui on vaja otsustada, kasutatakse pesastatud if-else. Pesastamine tähendab ühe if-else konstruktsiooni kasutamist teises.

Kirjutame programmi, mis illustreerib pesastatud if-else kasutamist.

#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äljund:

The value is:1

Ülaltoodud programm kontrollib, kas arv on väiksem või suurem kui 10, ja prindib tulemuse kasutades pesastatud if-else konstruktsiooni.

Pesastatud If-else lause C-s

  1. Esiteks oleme deklareerinud muutuja num väärtusega 1. Seejärel kasutasime if-else konstruktsiooni.
  2. Välimises if-else atribuudis kontrollib antud tingimus, kas arv on väiksem kui 10. Kui tingimus on tõene, siis ja ainult siis käivitatakse sisemine plokk. Sel juhul on tingimus tõene ja seega töödeldakse sisemist plokki.
  3. Sisemises plokis on meil jälle tingimus, mis kontrollib, kas meie muutuja sisaldab väärtust 1 või mitte. Kui tingimus on tõene, siis töödeldakse If-plokki, vastasel juhul else-plokki. Sel juhul on tingimus tõene, seega If-plokk käivitatakse ja väärtus prinditakse väljundekraanile.
  4. Ülaltoodud programm prindib muutuja väärtuse ja väljub edukalt.

Proovige väärtust muuta muutuja vaata, kuidas programm käitub.

MÄRKUS: Pesastatud if-else puhul peame taandega olema ettevaatlikud, kuna selles protsessis on kaasatud mitu if-else konstruktsiooni, mistõttu on üksikute konstruktsioonide väljaselgitamine keeruline. Õige taane muudab programmi lugemise lihtsaks.

Pesastatud Else-if avaldused

Pesastatud Else-if redel C-s

Pesastatud else-if kasutatakse siis, kui on vaja teha mitmeteelisi otsuseid.

Üldine süntaks selle kohta, kuidas C-programmeerimisel redelid muul viisil konstrueeritakse, on järgmine:

 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;

Seda tüüpi struktuuri tuntakse else-if-redelina. See ahel näeb üldiselt välja nagu redel, seega nimetatakse seda ka else-if-redeliks. Testavaldisi hinnatakse ülevalt alla. Kui leitakse tõene testavaldis, käivitatakse sellega seotud lause. Kui kõik n testavaldist muutuvad vääraks, käivitatakse vaikimisi else-lause.

Vaatame programmi abil tegelikku tööd.

#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äljund:

First class

Ülaltoodud programm prindib hinde vastavalt testis saadud hinnetele. Oleme ülaltoodud programmis kasutanud konstruktsiooni else-if redel.

  1. Oleme initsialiseerinud muutuja märkidega. Elu-if-redelstruktuuris oleme pakkunud erinevaid tingimusi.
  2. Muutuja märkide väärtust võrreldakse esimese tingimusega, kuna see on tõsi, sellega seotud väide trükitakse väljundekraanile.
  3. Kui esimene katsetingimus osutub valeks, võrreldakse seda teise tingimusega.
  4. See protsess jätkub seni, kuni kõik avaldised on hinnatud, vastasel juhul läheb juhtimine välja else-if redelist ja trükitakse vaikelause.

Proovige väärtust muuta ja märkige väljundi muutust.

KKK

IF-else kontrollib mis tahes Boole'i ​​avaldist, sh vahemikke ja relatsioonikontrolle. lüliti…ümbris võrdleb ühte muutujat fikseeritud konstantsete väärtustega ja kompileerib paljudel juhtudel kiiremaks hüppetabeliks.

Rippuv else probleem seisneb mitmetähenduslikkuses, millisesse if-lause kuulub, kui if-laused on pesastatud ilma sulgudeta. C-keeles paaristub else alati lähima sobimatu if-lausega. Looksulgude lisamine lahendab segaduse.

Jah. Loogilised operaatorid ühendavad tingimusi: && nõuab mõlema poole tõesust, || nõuab vähemalt ühe tõesust ja ! pöörab tulemuse ümber. Näiteks kui (vanus > 18 && kodanik), siis testitakse kahte tingimust koos ühes if-operatsioonis.

Sulgud on valikulised, kui keha on üksik lause, seega C käivitab ainult järgmise rea. Kahe või enama lause puhul on sulgud nende rühmitamiseks vajalikud. Sulgude kasutamine alati on turvaline harjumus, mis hoiab ära loogikavigade tekkimise.

Lühise hindamine peatub kohe, kui tulemus on teada. && korral jätab vale vasak pool vahele parema poole. || korral jätab tõeline vasak pool vahele parema. See väldib ebavajalikku tööd ja ohtlikke toiminguid.

Jah. Muidu-kui-redelit hinnatakse ülalt alla ja see peatub esimese tõese tingimuse juures. Laiade tingimuste asetamine kitsaste ette võib kitsaid juhtumeid varjata, seega järjesta testid kõige spetsiifilisemast kõige üldisemani.

Jah. Tehisintellekti kodeerimisassistendid koostavad kommentaarist tingimusplokke, teisendavad pikad if-else ahelad puhtamateks struktuurideks ja märgistavad tõenäolisi vigu, näiteks = asemel == kasutamist. Testi genereeritud loogikat alati enne selle usaldamist.

GitHubi koopia Täidab automaatselt if, else-if ja pesastatud tingimused teie kommentaaridest või ümbritsevast koodist. See pakub välja relatsioonilisi ja loogilisi avaldisi ning saab lisada puuduvad sulud, kuigi peaksite iga soovituse üle vaatama.

Võta see postitus kokku järgmiselt: