Tässä opetusohjelmassa opit if-lauseesta (mukaan lukien jos… muut ja sisäkkäiset, jos… muut) C-ohjelmoinnista esimerkkien avulla.
C jos lausunto
if
C-ohjelmoinnin lauseen syntaksi on:
if (test expression) ( // statements to be executed if the test expression is true )
Miten lausunto toimii?
if
Selvitys arvioi testin ilmaus sisällä suluissa ()
.
- Jos testilauseke arvioidaan tosi, lausekkeet rungon sisällä
if
suoritetaan. - Jos testilauseke arvioidaan vääräksi, lausekkeita rungon sisällä
if
ei suoriteta.
Jos haluat lisätietoja siitä, milloin testilauseke arvioidaan tosi (ei-nolla-arvo) ja epätosi (0), tarkista relaatio- ja loogiset operaattorit.
Esimerkki 1: if-lause
// Program to display a number if it is negative #include int main() ( int number; printf("Enter an integer: "); scanf("%d", &number); // true if number is less than 0 if (number < 0) ( printf("You entered %d.", number); ) printf("The if statement is easy."); return 0; )
Lähtö 1
Syötä kokonaisluku: -2 Annoit -2. If-lause on helppo.
Kun käyttäjä syöttää arvon -2, testilauseke number<0
arvioidaan tosi. Näin ollen Syötit -2 näkyy näytöllä.
Lähtö 2
Syötä kokonaisluku: 5 if-käsky on helppoa.
Kun käyttäjä syöttää 5, testilauseke number<0
arvioidaan vääräksi eikä rungon sisällä olevaa lausetta if
suoriteta
C jos… muuta lausunto
if
Selvitys voi olla valinnainen else
lohko. Lausunnon syntaksi if… else
on:
if (test expression) ( // statements to be executed if the test expression is true ) else ( // statements to be executed if the test expression is false )
Entä jos… muuten lause toimii?
Jos testilausekkeen arvo on tosi,
- lauseet rungon sisällä
if
suoritetaan. - lausekkeet rungon sisällä
else
ohitetaan suorittamisesta.
Jos testilauseke arvioidaan vääräksi,
- lauseet rungon sisällä
else
suoritetaan - lausekkeet rungon sisällä
if
ohitetaan suorittamisesta.
Esimerkki 2: jos… muu lause
// Check whether an integer is odd or even #include int main() ( int number; printf("Enter an integer: "); scanf("%d", &number); // True if the remainder is 0 if (number%2 == 0) ( printf("%d is an even integer.",number); ) else ( printf("%d is an odd integer.",number); ) return 0; )
Tuotos
Syötä kokonaisluku: 7 7 on pariton kokonaisluku.
Kun käyttäjä syöttää 7, testilauseke number%2==0
arvioidaan vääräksi. Näin ollen lause kehon sisällä else
suoritetaan.
C jos … muuten tikkaat
if… else
Lausunto suorittaa kaksi eri koodia riippuen siitä, onko testi lauseke on tosi tai epätosi. Joskus valinta on tehtävä useammasta kuin kahdesta mahdollisuudesta.
Jos… muuten tikkaat antavat sinun tarkistaa useita testilausekkeita ja suorittaa erilaisia lauseita.
Syntaksi jos… muusta tikasta
if (test expression1) ( // statement(s) ) else if(test expression2) ( // statement(s) ) else if (test expression3) ( // statement(s) )… else ( // statement(s) )
Esimerkki 3: C jos… muut tikkaat
// Program to relate two integers using =,> or < symbol #include int main() ( int number1, number2; printf("Enter two integers: "); scanf("%d %d", &number1, &number2); //checks if the two integers are equal. if(number1 == number2) ( printf("Result: %d = %d",number1,number2); ) //checks if number1 is greater than number2. else if (number1> number2) ( printf("Result: %d> %d", number1, number2); ) //checks if both test expressions are false else ( printf("Result: %d < %d",number1, number2); ) return 0; )
Tuotos
Syötä kaksi kokonaislukua: 12 23 Tulos: 12 <23
Sisäkkäin, jos… muuta
Lauseke on mahdollista sisällyttää if… else
toisen if… else
lauseen runkoon .
Esimerkki 4: Sisäkkäin, jos… muuta
Tämän ohjelman alla koskee kahden kokonaisluvun käyttäen joko <
, >
ja =
samanlainen kuin if… else
tikkaiden esimerkki. Käytämme kuitenkin sisäkkäistä if… else
lausetta tämän ongelman ratkaisemiseksi.
#include int main() ( int number1, number2; printf("Enter two integers: "); scanf("%d %d", &number1, &number2); if (number1>= number2) ( if (number1 == number2) ( printf("Result: %d = %d",number1,number2); ) else ( printf("Result: %d> %d", number1, number2); ) ) else ( printf("Result: %d < %d",number1, number2); ) return 0; )
Jos if… else
lauseen rungossa on vain yksi lause, sinun ei tarvitse käyttää sulkeita ()
.
Esimerkiksi tämä koodi
if (a> b) ( print("Hello"); ) print("Hi");
vastaa
if (a> b) print("Hello"); print("Hi");