menu
shopping_cart
0
KOSÁR

14. lecke

Az IF feltétel

lightbulb_outlineÍrunk egy gondolkozó programot. Kész a jövő Terminátora.

Lassan írónak érezhetjük magunkat, olyan jól tudjuk kezelni a printf parancsot. Sőt a scanf minden fontos tulajdonságát is megismertük. A beolvasott adatokat jó lenne megvizsgálni. Mifélék, mekkorák, milyen eredményt adnak egy másik számmal összegezve, satöbbi.

A vizsgálódáshoz az IF programszerkezetet használjuk.

Láttunk már parancsokat. A most következő nyelvi elem nem parancs, nem áll utána pontosvessző és elég furcsán is néz ki első látásra. Ez egy programszerkezet:

if (        ) {        }

A programszerkezet két részből áll: Az első részébe kell írni azt amit megvizsgálunk, a második részébe pedig azokat a parancsokat amiket végre akarunk hajtani:

if ( feltételek ) { parancsok }

Hányszor hallottad már az anyukádtól azt, hogy

"csak ha kész van a lecke, utána kapcsolhatod be a számítógépet"

Szerintem sokszor. A C nyelv is tartalmaz egy ilyen szigorú szülőt, aki bizonyos tevékenységeket csak akkor enged végrehajtani, ha valami feltétel teljesült.

Az IF szócska azt jelenti angolul, hogy: ha. Ezzel a programszerkezettel vizsgálhatunk meg feltételeket, és HA azok teljesülnek, AKKOR végrehajtódnak a parancsok. A feltételeket sima zárójelek közé írjuk – a parancsok pedig kapcsos zárójel blokkba kerülnek. A feltétel többnyire egy matematikai kifejezés. Például, feltételnek írhatjuk azt, hogy ha egy változó kisebb, mint 5, akkor történjen az, hogy kiírjuk a konzolra ezt a tényt:

#include<stdio.h>

int main(){

    int szam = 4;

    if( szam < 5 ){
        printf("Kisebb, mint 5");
    }

return 0;
}

if.c c Kisebb, mint 5

A C megvizsgálja a sima zárójelek közötti feltétel igazságtartalmát, és ha az igaz, akkor és csak akkor végrehajtja a kapcsos zárójelek közötti parancsokat. A most bemutatott példakódban a szám változó értéke 4, ezért a feltétel igazként értékelődik ki, így lefut a printf parancs.

Ha a szám változó értéke 5, akkor a feltétel hamis és printf parancs nem fut le, egyszerűen kihagyódik a kapcsos zárójel blokk, üres lesz a konzolablak.

#include<stdio.h>

int main(){

    int szam = 5;

    if( szam < 5 ){
        printf("Kisebb, mint 5");
    }

return 0;
}

if2.c c

Ilyen egyszerű az IF programszerkezet használata. Pontosan milyen feltételeket szabhatunk? Mik a feltételek leírásának szabályai? Ezeket az operátorokat használhatjuk:

<   kisebb
>   nagyobb
<=  kisebb egyenlő
>=  nagyobb egyenlő
!=  nem egyenlő
==  egyenlő

A kisebb, nagyobb, kisebb egyenlő, nagyobb egyenlő relációs jelek használata egyértelmű. A matematika tárgy keretein belül ezerszer használtuk őket. Megfogalmazhatunk velük egy matematikai kifejezést és az IF ezek igazságtartalmát vizsgálja.

Az egyenlőség operátorok használata már kicsit érdekesebb:

Ha két változót szeretnénk összehasonlítani, hogy vajon egyenlő-e a kettő, akkor használjuk az == operátort. Miért nem csak 1 darab egyenlőség jelet írunk? Mert az 1 darab egyenlőségjel operátor már foglalt, hisz ezzel adunk értéket a változóknak létrehozáskor vagy műveletvégzéskor. Itt például az a-változó felveszi b értékét, ő is 4 lesz.

#include<stdio.h>

int main(){

    int a = 5;
    int b = 4;

    //Ez az ÉRTÉKADÁS:
    a = b;

return 0;
}

ertekadas.c c

Vizsgálódni ezentúl 2 db egyenlőség jellel fogunk. Ekkor az a-változó és a b-változó értéke nem változik, ez nem értékadás, hanem vizsgálódás.

#include<stdio.h>

int main(){

    int a = 100;
    int b = 100;

    if( a == b ){
        printf("Ugyanannyi");
    }

return 0;
}

vizsgalodas.c c Ugyanannyi

Ilyen egyszerű az egyenlőség vizsgálata. Nem csak az egyezést, hanem a különbözőségét is vizsgálhatjuk a nem egyenlő != jellel. Ha két változót szeretnénk összehasonlítani, hogy vajon az értékük különbözik-e? egymástól, akkor használjuk ezt az "eltorlaszolt" egyenlőségjelre hasonlító operátort:

#include<stdio.h>

int main(){

    int a = -7;
    int b = 42;

    if( a != b ){
        printf("Különbözik");
    }

return 0;
}

kulonbozo.c c Különbözik

Jelentkezz be a hozzászóláshoz.

toggyuri
mert pl. így is lefut... : if( a != b ){printf("Különbözik");
toggyuri
Ebben a fejezetben - a példákban - a sortörések szándékosak a "parancsok" kapcsos zárójelei között?