|
Nr 10/2000 (20) -- 16.12.2000 |
| Pierwsze kroki w C (cd.) |
|
Oto jak obiecałem kolejna część tutoriala o c. Tym razem zajmę się podstawowymi instrukcjami [for, while, if, etc.], które są nieodzowne przy nauce języka programowania. Zacznę od warunku if. IF - warunekLubię tłumaczyć na przykładzie, więc:
main(){
int a,b,c,z;
a=20;
b=30;
c=0;
// if-else wygląda tak:
if (a>b) printf("a=%d wieksze od b=%d", a, b);
else printf("a=%d mniejsze od b=%d", a, b);
// jeżeli więcej niż jedno polecenie dla if lub else to klamrujemy:
if (a>b){
printf("a wieksze");
z=a;
}
else {
printf("b wieksze");
z=b;
}
} // klamra zamykająca main()
Jeżeli ktoś nie pamięta co oznacza \n oraz %d odsyłam do poprzedniego numeru. Znów jak widać i podobnie jak
...
if(){}
if(){}
if(){}
else(){}
...
Czyli z tego wniosek, że nie po każdym if'ie musi wystąpić else (jednakże zalecane jest ze względów bezpieczeństwa aby tak było). Następna będzie instrukcja while-do. WILE-DO - instrukcjaJak wyżej, więc...
main() {
int a,b,c,z;
a=0;
b=5;
while (a<20) {
printf("a=%d i nadal mniejsze od 20", a);
printf(", lecz b rowne %d\n", b);
b--;
}
}
Jeżeli dobrze się przyjrzymy kodowi to można bez problemu zauważyć [no prawie bez problemu, ja to zauważyłem po uruchomieniu :)], że program nigdy się nie skończy, ponieważ nigdy a nie osiągnie wartości 20, ponieważ nigdzie nie jest zwiększana. Należy więc do instrukcji while dopisać linijkę a++; DO-WHILE - instrukcjaTa instrukcja nie różni się wiele od poprzedniej. Chodzi o to, że najpierw są wykonywane polecenia, a na końcu sprawdzany warunek.
main() {
int a,b,c,z;
a=0;
b=5;
do {
printf("a=%d i nadal mniejsze od 20", a);
printf(", lecz b rowne %d\n", b);
b--;
a++;
} while (a<20);
}
FOR - najciekawsza instrukcjaKiedy robiłem w Pascalu nawet nie marzyłem o takiej pętli. Po prostu nie znałem c. Podajemy pod słowie for w nawiasach kilka parametrów, a następnie otwieramy klamrę i piszemy polecenia na końcu zamykając klamrę [chyba że mamy jedno polecenie].
main() {
int i, a, b=5;
for(i=0; i<10; i++) {
a=(b+10)*i;
printf("wartosc liczby rowna %d\n", a);
}
}
Myślę, że jest to bardzo wygodna instrukcja i warto jej użyć, gdyż nam to zaoszczędzi często nieczytelności kodu. Tak jak zawsze można użyć tutaj zamiast for'a innej instrukcji [np. while] i to już zależy od gustu. SWITCH - wygodny caseSwitch to po prostu case, a wiadomo kiedy case się przydaje. Wtedy gdy mamy wiele przypadków do rozpatrzenia. Najprościej pokazać na przykładzie.
main() {
int i;
for(i=0; i<10; i++) {
switch(i){
case 1: printf("index rowny 1\n");
break;
case 2:
case 3:
case 4: printf("index rowny 2, 3, albo 4");
break;
case 8: printf("index rowny juz 8");
default: printf("index jest nie wiadomo ile rowny... :(");
break;
} // koniec switcha
} // koniec petli
} //koniec programu
Jak widać [myślę, że dobrze widać co co robi] switch'a otwieramy klamrami [w nawiasie podajemy jaką wartość ma sprawdzać] i wewnątrz stosujemy case'a. Jeżeli case 2 i case 3 są puste oznacza to, że wywołają te same polecenia co następny case z poleceniami [case 4]. Break jako ostatnie polecenie wychodzi z danego case'a i wraca do switch'a [aby sprawdzać kolejne przypadki]. Case noszący nazwę default wykonuje polecenia dla wszystkich niezdefiniowanych przypadków. Na tym kończę mój artykuł, w następnym numerze skończy się sama teoria i zacznie się trochę praktyki, powiem również o dość prostych rzeczach jak struktura i unia [nie są wcale takie złe jak się wydaje]. Paweł Kowalak vel viru
viru@cad.pl |
| [Poprzedni] - [Spis treści] - [Następny] |