if else
Opći format ove naredbe je,
if( uvjet 1 ) izraz1; else if( uvjet 2 ) izraz2; else if( uvjet 3 ) izraz3; else izraz4;else omogućava da se izvrši naredba kada je uvjet neistinit (jednak nuli).
Slijedeći program koristi if else naredbu da ocijeni je li upis korisnika između 1 i 10.
#include <stdio.h>
main()
{
int number;
int valid = 0;
while( valid == 0 ) {
printf("Unesite broj između 1 i 10 -->");
scanf("%d", &number);
if( number < 1 ) {
printf("Broj je manji od 1. Unesite ponovno\n");
valid = 0;
}
else if( number > 10 ) {
printf("Broj je veći od 10. Unesite ponovno\n");
valid = 0;
}
else
valid = 1;
}
printf("Broj je %d\n", number );
}
Ispis programa
Unesite broj između 1 i 10 --> 12
Broj je veći od 10. Unesite ponovno
Unesite broj između 1 i 10 --> 5
Broj je 5
Ovaj program se malo razlikuje od prethodnog
primjera u tome da se else koristi za postavljanje varijable
valid na 1. U ovom programu lakše je pratiti logiku.
/* Ilustrira ugniježđene if else i više argumenata za scanf funkciju. */
#include <stdio.h>
main()
{
int invalid_operator = 0;
char operator;
float number1, number2, result;
printf("Unesite dva broja i operator\n");
printf(" number1 operator number2\n");
scanf("%f %c %f", &number1, &operator, &number2);
if(operator == '*')
result = number1 * number2;
else if(operator == '/')
result = number1 / number2;
else if(operator == '+')
result = number1 + number2;
else if(operator == '-')
result = number1 - number2;
else
invalid_operator = 1;
if( invalid_operator != 1 )
printf("%f %c %f iznosi %f\n", number1, operator, number2, result );
else
printf("Nedozvoljeni operator.\n");
}
Ispis programa
Unesite dva broja i operator
number1 operator number2
23.2 + 12
23.2 + 12 iznosi 35.2
Gornji program radi kao jednostavni kalkulator.