PROGRAMOWANIE I ALGORYTMY

Break i continue


powrót

break

W instrukcjach iteracyjnych słowo kluczowe break bezwarunkowo przerywa wykonwyanie się pętli. Jest to proste rozwiązanie i ma zastosowanie w sytuacji, gdy dalsze powtarzanie instrukcji w pętli, nie są już potrzebne. Prześledźmy przykład.

Przykład 1

Napisz program, który stwierdzi, czy podana liczba naturalna dodatnia n posiada co najmniej jeden dzielnik z zadanego na wejściu przedziału $$[2; \sqrt{n}]$$

Rozwiązanie

#include <iostream>
#include <cmath>
using namespace std;

int main()
{
	unsigned int n, i;
	cout<<"Podaj liczbę: ";
	cin>>n;

	int pierw = 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;

	return 0;
}

continue

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 instrukcje, które występują po słowie kluczowym continue, ale znajdują się w bloku danej pętli. Popatrzmy na przykład:

Przykład 2

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

Rozwiązanie

#include <iostream>
using namespace std;

int main()
{
	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)//sprawdzenie, czy "i" jest palindromem
			cout<<i<<" ";
	}
	
	cout<<endl;

	return 0;
}