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; }