Potrzebuję pomocy z C++ ( for , switch , while) . Chodzi głównie o zrobienie zadań i wyjaśnienie mi ich. Najbardziej zależy mi na tym abym to zrozumiała. Z góry dziękuję.
" Life is not a problem to be solved but a reality to be experienced! "
© Copyright 2013 - 2024 KUDO.TIPS - All rights reserved.
if jest instrukcją warunkową, czyli żeby w bloku if coś się wykonało musi być spełniony warunek. Struktura if'a wygląda tak:
if (warunek) {
kod, który ma się wykonać, jeśli warunek jest spełniony
}
Przykład kodu:
a=1;
if (a==1) {
cout << "a jest równe 1 i napis się wyświetlił";
}
if (a==2) {
cout << "a jest równe 1 i napis się nie wyświetlił";
}
(operator "==" to znak równości, ponieważ "=" jest operatorem przypisania).
else jest uzupełnieniem if'a, czyli żeby działał, przed nim musi być if z jakimś warunkiem. Struktura if'a z else wygląda tak:
if (warunek) {
kod, który ma się wykonać, jeśli warunek jest spełniony
}
else {
kod, który się wykona w innym wypadku niż w warunku if
}
Przykład kodu:
a=1;
if (a==1) {
cout << "a jest równe 1 i napis się wyświetlił";
}
else {
cout << "napis się wyświetli wtedy, kiedy a nie będzie równe 1 (warunek w if'ie się nie spełni), czyli kiedy a będzie równe 2, 3, 4, 5, itp.";
}
for jest pętlą, która wykonuje się tylko, kiedy warunek jest spełniony. Struktura wygląda tak:
for (stan początkowy; warunek wykonywania pętli; zmiana stanu początkowego co skok pętli) {
treść pętli
}
Przykład kodu:
for (i=1; i<=50; i++) {
cout << i << ". Ta pętla będzie wykonywała się 50 razy i wyświetli na ekranie 50 razy ten napis poprzedzony liczbą skoku." << endl;
}
i<=50 - operator <= oznacza mniejsze lub równe
i++ - jest to inkrementacja, czyli co każdy skok do zmiennej i będzie dodawać 1. Można to zapisać również tak: i=i+1;
endl - odpowiednik entera, dzięki temu każdy napis będzie w osobnym wierszu.
switch jest instrukcją podobną do if'a. Przydaje się w wypadkach, kiedy pobieramy od użytkownika różne wartości i dla każdej wartości ma się wykonać inne zadanie. Struktura wygląda tak:
switch (wyrazenie, czyli zmienna, którą będziemy sprawdzać) {
case wartość zmiennej, którą sprawdzamy :
instrukcja, która ma się wykonać;
break;
case wartość zmiennej inna niż w pierwszym case :
instrukcja, która ma się wykonać;
break;
default :
instrukcja standardowa, jeśli żaden case nie pasuje do naszego wyrażenia w switch'u;
break;
}
Przykład:
cout << "Wpisz wartość dla a";
cin >> a;
switch (a) {
case 1 :
cout << "Wartość a wynosi 1";
break;
case 2 :
cout << "Wartość a wynosi 2";
break;
default :
cout << "Wartość a jest inna niż 1 i 2";
break;
}
Program sprawdzi, czy wartość w zmiennej a jest równe 1, jeśli tak to wyświetli case 1. Jeśli 2 to wyświetli case 2, a jeśli zmienna a ma inną wartość to wyświetli zawartość default'a.
cin - pobiera wartość od użytkownika do zmiennej a.
To samo można napisać z użyciem instrukcji if:
cout << "Wpisz wartość dla a";
cin >> a;
if (a==1) {
cout << "Wartość a wynosi 1";
}
if (a==2) {
cout << "Wartość a wynosi 2";
}
else {
cout << "Wartość a jest inna niż 1 i 2";
}
while jest instrukcją podobną do for, czyli wykonuje się tylko, kiedy warunek jest spełniony. Struktura wygląda tak:
while (warunek wykonywania pętli) {
treść pętli
}
Przykład kodu:
int a=0;
while(a<=10) {
cout << a << ", ";
a++;
}
Ten program wypisuje liczby od 0 do 10 oddzielając je przecinkami i spacją.
Tak jak w pętli for, pętla musi mieć koniec, dlatego też trzeba użyć inkrementacji a++; (odpowiednik a=a+1;). W przeciwieństwie do funkcji for, gdzie "ustawienia" pętli wprowadzaliśmy w warunku, tutaj musimy to robić w samej pętli.
Jeśli jeszcze coś niejasnego to pisz na PW. Pozdrawiam :)
1. PĘTLA WHILE
while to pętla warunkowa, Wykonuje kod, dopóki warunek jest spełniony. Przykład:
int n=0; //wyzeruj n
while(n<5) //dopóki n jest mniejsze od pięciu:
{
cout << "n wynosi " << n << endl; //wypisz, ile wynosi n (endl to koniec linii)
n++; //zwiększ n o jeden
}
W pętli while można używać słów kluczowych continue oraz break. Break powoduje wyjście z pętli, np.:
int n=0;
while(true) //pętla jest nieskończona (true jest zawsze prawdą)
{
n++; //zwiększaj n o jeden
if(n==10) //jeżeli n jest równe 10 to przerwij pętle
break;
}
cout << "pętla przerwana!" << endl; //wykonywanie while zostało zakończone, dlatego ten napis się wyświetli
Słowo continue powoduje przejście na początek pętli. W poniższym przykładowym kodzie, kod w pętli jest wykonywany pięć razy, lecz napis pojawia się tylko dwa razy (dla n równe 3 i 4). Dzieje się tak, ponieważ continue powoduje przejście na początek pętli zanim napis zostanie wydrukowany.
int n=0;
while(n<5)
{
n++;
if(n<3)
continue; //przejdź z powrotem na początek pętli
cout << "n nie jest mniejsze od 3!" << endl;
}
2. PĘTLA FOR
(iteracja to pojedyńcze wykonanie kodu w pętli)
for jest pętlą while z dwoma dodatkami. Przed pętlą i przed kazdą iteracją wykonywany jest jakiś kod. For ma następującą składnie:
for(wykonaj przed; warunek; wykonaj przed kazdą iteracją)
{
kod
}
Poniższa pętla przed wykonaniem kodu w pętli, zeruje n. Przed kazdą iteracją zwiększa n o jeden.
for(n=0; n<5; n++)
{
cout << "n wynosi " << n << endl;
}
Powyższy kod można zapisać w inny sposób (wynik będzie dokładnie taki sam):
n=0;
while(n<5)
{
n++;
cout << "n wynosi " << n << endl;
}
W pętli for, podobniej jak w while, można używać break i continue oraz działają w ten sam sposób. Przykładowo poniższy kod zwiększa n co jeden w każdej iteracji, wypisuje "n nie jest mniejsze od 5" na ekran, gdy n jest większe bądź równe 5 oraz kończy petlę, gdy n jest równe 8.
for(n=0; n<10; n++)
{
if(n<5)
continue;
cout << "n nie jest mniejsze od 5" << endl;
if(n==8)
break;
}
W C++ można też tworzyć nowe zmienne w pętlach for. Przykładowo:
for(int n=0;n<5;n++)
{
cout << "n jest rowne " << n << endl;
}
Jak widać, n zostało zadeklarowane wewnątrz pętli.
3. KONSTRUKCJA SWITCH
Switch nie jest już petlą. Służy do czegoś innego. Odczytuje wartość podanej liczby i wykonuje kod do niej przypisany. Jego składnia wygląda następująco:
switch(liczba)
{
case mozliwa_wartosc_1:
kod 1
break;
case mozliwa_wartosc_2:
kod 2
break;
...
}
Przykładowo:
n=2;
switch(n)
{
case 0:
cout << "n jest rowne zero" << endl;
break;
case 1:
cout << "n jest rowne jeden" << endl;
break;
case 2:
cout << "n jest rowne dwa" << endl;
break;
}
Powyższy przykład sprawdza wartość n. W przypadku (case po angielsku to dosłownie przypadek), gdy jest równa 0, wypisuje "n jest równe zero". W przypadku, gdy jest równa 1, wypisuje "n jest równe jeden", itd.
A co jeśli nie n nie jest równe ani zero, ani jeden, ani dwa? Nie stanie się nic (żaden case nie pasuje). Jeżeli jednak chcemy, żeby coś się w takim przypadku stało, możemy użyć słowa default zamiast case [liczba]. Przykładowo:
n=2;
switch(n)
{
case 0:
cout << "n jest rowne zero" << endl;
break;
case 1:
cout << "n jest rowne jeden" << endl;
break;
case 2:
cout << "n jest rowne dwa" << endl;
break;
default:
cout << "n nie jest ani zerem, ani jedynka, ani dwojka, dlatego default sie nim zajmie" << endl;
break;
}
Uwaga 1: Switch działa tylko na liczbach. Nie można używać go do sprawdzania ciągów znaków (tak przynajmniej jest w C).
Uwaga 2: Break w konstrukcji switch ma trochę inne znaczenie niż w pętlach, ale dla początkującego to nie jest istotne.