Instrukcja warunkowa if – else

Transkrypt

Instrukcja warunkowa if – else
Instrukcja warunkowa if – else
1. Instrukcja warunkowa bez alternatywy
Instrukcja warunkowa bez alternatywy ma postać:
if(warunek (warunki))
{ //początek bloku należącego do if
//instrukcje zostaną wykonane, gdy warunek (warunki) jest prawdziwy
//w przeciwnym wypadku ta część kodu zostanie pominięta
} //koniec bloku należącego do if
przykład 1:
#include <stdio.h>
int main()
{
int a = 3, b = 6;
if(a > b)
//warunek jest fałszywy, a więc poniższa instrukcja
//zostanie pominięta
printf("%d jest większe od %d ", a,b);
if(b > a)
//warunek jest prawdziwy, a więc wykona się instrukcja
//należąca do bloku if
printf("%d jest większe od %d ", a,b);
return 0;
}
Zasada działania instrukcji warunkowej if opiera się na wartości, jaką przyjmuje warunek. W
przypadku true (1), instrukcje dla bloku if zostaną wykonane.
2. Instrukcja warunkowa z alternatywą
W instrukcji warunkowej z alternatywą pojawia się drugi blok instrukcji rozpoczynany słowem
kluczowym else, wykonany w przypadku, gdy warunek (warunki) jest fałszywy. Warto zauważyć, że
w tym przypadku wykona się zawsze jeden z dwóch bloków:
if(warunek (warunki))
{ //początek bloku należącego do if
//instrukcje zostaną wykonane, gdy warunek (warunki) jest prawdziwy
//w przeciwnym wypadku część kodu należąca do bloku if zostanie pominięta
} //koniec bloku należącego do if
else
//do tego bloku należą instrukcje, które zostaną wywołane w przypadku, gdy warunek dla if będzie
//fałszywy
{ //początek bloku należącego do else
//instrukcje zostaną wykonane, gdy warunek (warunki) jest fałszywy
//w przeciwnym wypadku część kodu należąca do bloku else zostanie pominięta
} //koniec bloku należącego do else
przykład 2
#include <stdio.h>
int main()
{
int wiek;
printf("Podaj wiek: ");
scanf(”%d”, &wiek);
if(wiek>=18)
//ta część wykona się gdy warunek będzie prawdziwy
printf(”Podana osoba jest pełnoletnia");
else
//ta część wykona się gdy warunek będzie fałszywy
printf(”Podana osoba jest pełnoletnia");
return 0;
}
3. Warunki proste i złożone
Konstrukcja warunków instrukcji if może być prosta - złożona z jednego warunku, lub złożona z kilku
warunków połączonych operatorami logicznymi. Rozpatrzmy przykład, który sprawdzi, czy dana
liczba naturalna jest podzielna przez 3 lub reszta z dzielenia tej liczby przez 7 jest równa 2:
przykład 3 - realizacja zadania z wykorzystaniem warunków prostych
#include <stdio.h>
int main()
{
int liczba;
printf(”Podaj liczbę: ");
scanf(”%d”,&liczba);
if(liczba%3==0) // warunek prosty
if(liczba%7==2) // warunek prosty
printf(”Liczba %d spełnia warunki zadania.", liczba) ;
else
(”Liczba %d nie spełnia warunków zadania.", liczba) ;
else
(”Liczba %d nie spełnia warunków zadania.", liczba) ;
return 0;
}
przykład 4 - realizacja zadania z wykorzystaniem warunków złożonych
#include <stdio.h>
int main()
{
int liczba;
printf(”Podaj liczbę: ");
scanf(”%d”,&liczba);
// warunek złożony z dwóch warunków prostych
if(liczba%3==0 || liczba%7==2)
printf(”Liczba %d spełnia warunki zadania.", liczba) ;
else
(”Liczba %d nie spełnia warunków zadania.", liczba) ;
return 0;
}
4. Zagnieżdżona instrukcja warunkowa
Zagnieżdżenie instrukcji warunkowej polega na wywołaniu jej wewnątrz innej instrukcji warunkowej.
W języku C można dowolnie zagnieżdżać if - else, pamiętając o tym, aby kod był czytelny.
Dla przykładu rozwiążmy zadanie:
przykład 5
Tabela poniżej określa taryfikator mandatów w pewnym państwie:
Wykroczenie
Wysokość mandatu
Przekroczenie prędkości do 10 km
100
Przekroczenie prędkości z przedziału [11, 30]
200
Przekroczenie prędkości > 30
400
Użytkownik podaje liczbę km, jaką przekroczył kierowca. Zadaniem programu jest określenie
wysokości mandatu.
#include <stdio.h>
int main()
{
int prekdkosc;
printf("Podaj wartość przekroczonej predkości: ");
scanf(”%d”,&predkosc);
if(predkosc<=10)
printf("Wartość mandatu wynosi 100");
else
//dla czytelności kodu stosujemy odpowiednie wcięcia
if(predkosc<=30) //zagnieżdżona instrukcja if
printf("Wartość mandatu wynosi 200");
else
printf("Wartość mandatu wynosi 400");
return 0;
}