Programowanie i algorytmy

Break i continue

powrót

W instrukcjach iteracyjnych słowo kluczowe break bezwarunkowo przerywa działanie pętli (wychodzi z tej pętli). Jeśli dalsze wykonywanie pętli nie ma sensu, przerywamy jej działanie właśnie tą instrukcją. Prześledźmy przykład.

Przykład. Napisz program, który stwierdzi, czy podana liczba naturalna dodatnia n posiada co najmniej jeden dzielnik z przedziału domkniętego

{tex}[2; \sqrt{n}]{/tex}

Rozwiązanie

#include <cstdlib>
#include <iostream>

#include <math.h>


using namespace std;

int main(int argc, char *argv[])
{

unsigned int n, i;
cout<<"Podaj liczbę: ";
cin>>n;

int pierw = (int) sqrt(n);

for(i = 2; i<=pierw; i++)

if(n%i==0) //jeśli znajdziemy dzielnik, to nie ma sensu dalszego wykonywania działania pętli

break; //przerwanie działania pętli for

if(i>pierw) //jesli licznik "i" przekroczył wartość zmiennej "pierw", tzn., że nie znalazł pierwiastka

cout<<"Liczba "<<n<<" nie posiada dzielników z zadanego przedziału"<<endl;

else

cout<<"Liczba "<<n<<" posiada dzielniki z zadanego przedziału"<<endl;



system("PAUSE");
return EXIT_SUCCESS;
}

 

Słowo kluczowe continue, powoduje wznowienie działania pętli i zaprzestanie wykonywania dalszych instrukcji dla danego powtórzenia. Stosuje się je w przypadku, gdy w danej iteracji pętli nie ma konieczności wykonania dalszych instrukcji pętli. Popatrzmy na przykład:

Przykład. Napisz program, który wyświetli wszystkie trzycyfrowe palindromy, w których środkowa cyfra jest równa zero lub pięć.

 

Rozwiązanie

#include <cstdlib>

#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{

for(int i = 100; i<1000; i++)

{

if((i/10)%10 != 0 && (i/10)%10 != 5) //sprawdzenie czy środkowa cyfra jest różna od 0 i od 5

continue; // jeśli tak, to nie ma sensu wykonywania dalszych instrukcji dla danej iteracji


if(i%10 == i/100)

cout<<i<<" ";

}
cout<<endl;

system("PAUSE");
return EXIT_SUCCESS;
}