Switch ifadesindeki bir vakayı sonlandırmak için kullanılabilir. Yuvalanmış döngüler kullanıyorsanız (diğer bir döngü içindeki bir döngü), break ifadesi en içteki döngünün yürütülmesini durdurur ve bloktan sonraki bir sonraki kod satırını çalıştırmaya başlar.
Akış diyagramı :
Hemen bir örnekle pekiştirelim:
#include
using namespace std;
int main () {
// Yerel değişken bildirimi:
int a = 10;
// döngü yürütme yap
do {
cout << "value of a: " << a << endl;
a = a + 1;
if( a > 15) {
// döngüyü sonlandır
break;
}
} while( a < 20 );
return 0;
}
Yukarıdaki kod derlendiğinde ve çalıştırıldığında, aşağıdaki sonucu verir.
Burada break deyimi döngü tiplerinde üç farklı döngü tipinde kullanıldığını göreceğiz:
- Basit döngüler
- İç içe geçmiş döngüler
- Sonsuz döngüler
Şimdi break deyimini kullanarak yukarıdaki üç döngü türünün örneklerine bakalım.
Basit döngüler: Bir dizideki bir elemanı aramak istediğimiz durumu düşünün. Bunu yapmak için, ilk dizinden başlayarak diziyi geçmek için bir döngü kullanın ve dizi öğelerini verilen tuşla karşılaştırın.
Aşağıda bu fikrin uygulanması yer almaktadır:
// Doğrusal Arama
#include
using namespace std;
void findElement(int arr[], int size, int key)
{
// dizi arasında dolaşmak ve anahtar aramak için döngü
for (int i = 0; i < size; i++) {
if (arr[i] == key) {
cout << "Element found at position: " << (i + 1);
}
}
}
// Yukarıdaki fonksiyonu test etmek için sürücü programı
int main()
{
int arr[] = { 1, 2, 3, 4, 5, 6 };
int n = 6; // element sayısı
int key = 3; // aranacak anahtar
// Anahtarı bulmak için arama işlevi
findElement(arr, n, key);
return 0;
}
Yukarıdaki kod derlendiğinde ve çalıştırıldığında, aşağıdaki sonucu verir.
Yukarıdaki kod hatasız çalışıyor. Ancak yukarıdaki kod verimli değildir. Yukarıdaki kod, eleman bulunduktan sonra bile tüm yinelemeleri tamamlar. Dizide 1000 eleman bulunduğunu ve aranacak anahtarın 1. konumda bulunduğunu varsayalım, böylece yukarıdaki yaklaşım, amacı olmayan ve işe yaramaz 999 yineleme gerçekleştirir.
Bu gereksiz yinelemelerden kaçınmak için programımızda break deyimini kullanabiliriz. Break ifadesiyle karşılaşıldığında, koşul gerçekleştikten hemen sonra döngüden kontrol geri dönecektir. Bu durumda break deyimini, anahtarı aşağıda gösterilen şekilde dizi öğeleriyle karşılaştıran if koşulu ile kullanacağız:
// break deyimini kullanarak
// Doğrusal Arama'da
#include
using namespace std;
void findElement(int arr[], int size, int key)
{
// dizi arasında dolaşmak ve anahtar aramak için döngü
for (int i = 0; i < size; i++) {
if (arr[i] == key) {
cout << "Element found at position: " << (i + 1);
// döngü yürütmesini sonlandırmak için break kullanma
break;
}
}
}
// Yukarıdaki fonksiyonu test etmek için sürücü programı
int main()
{
int arr[] = { 1, 2, 3, 4, 5, 6 };
int n = 6; // element sayısı
int key = 3; // aranacak anahtar
// Anahtarı bulmak için arama işlevi
findElement(arr, n, key);
return 0;
}
Yukarıdaki kod derlendiğinde ve çalıştırıldığında, aşağıdaki sonucu verir.
İç İçe Döngüler: İç içe ilmeklerle çalışırken break deyimini de kullanabiliriz. Break ifadesi en içteki döngüde kullanılıyorsa. Kontrol sadece en içteki döngüden çıkacaktır. Aşağıda iç içe döngülerle birlikte kullanma örneği verilmiştir:
// göstermek için CPP programı
// break deyimini kullanarak
// iç içe döngüler içinde
#include
using namespace std;
int main()
{
// break ifadesi olan döngüler için yuvalanmış
// iç döngüde
for (int i = 0; i < 5; i++) {
for (int j = 1; j <= 10; j++) {
if (j > 3)
break;
else
cout << "*";
}
cout << endl;
}
return 0;
}
Yukarıdaki kod derlendiğinde ve çalıştırıldığında, aşağıdaki sonucu verir.
Yukarıdaki kodda, iç döngünün 10 yineleme için yürütülecek şekilde programlandığını açıkça görebiliyoruz. Ancak, j'nin değeri 3'ten büyük olduğunda, iç döngü çalışmayı durdurur, bu da iç döngü yineleme sayısını sadece 3 yineleme ile sınırlar. Bununla birlikte, dış döngünün yinelenmesi etkilenmeden kalır.
Bu nedenle, mola yalnızca içinde bulunduğu döngü için geçerlidir.
Sonsuz Döngüler: break ifadesi, sonsuz döngünün yürütülmesini sonlandırmak için koşulu olan sonsuz bir döngüye dahil edilebilir.
Aşağıdaki sonsuz döngüyü düşünün:
// göstermek için CPP programı
// break deyimini kullanarak
// Sonsuz döngüler içinde
#include
using namespace std;
int main()
{
// döngü başlatma ifadesi
int i = 0;
// sonsuz döngüdeyken
while (1) {
cout << i << " ";
i++;
}
return 0;
}
Not: Lütfen yukarıdaki programı sonsuz bir döngü olduğu için derleyicinizde çalıştırmayın, böylece programı sonlandırmak için derleyiciden zorla çıkmanız gerekebilir.
Yukarıdaki programda, döngünün sona erdirilmesine dayanan döngü koşulu her zaman doğrudur. Böylece, döngü sonsuz sayıda yürütür. Bunu break cümlesiyle aşağıda gösterildiği gibi düzeltebiliriz:
// göstermek için CPP programı
// break deyimini kullanarak
// Sonsuz döngüler içinde
#include
using namespace std;
int main()
{
// döngü başlatma ifadesi
int i = 1;
// sonsuz döngüdeyken
while (1) {
if (i > 10)
break;
cout << i << " ";
i++;
}
return 0;
}
Yukarıdaki kod derlendiğinde ve çalıştırıldığında, aşağıdaki sonucu verir.
Yukarıdaki kod, döngü yineleme sayısını 10 olarak sınırlar.