Çözüldü C++ Sonsuz for Döngüsü Hatası

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.

Primearc

Hectopat
Katılım
3 Ocak 2021
Mesajlar
1.489
Makaleler
3
Çözümler
13
Yer
Matrix
Sonsuz for Döngüsü Hatası.


C++:
#include <iostream>


using namespace std;

void siralama( int *ptr1,  int *ptr2) {
    for (ptr1 <= ptr2; ptr1++;)
    {
        cout << "Deger: " << *ptr1 << endl;
    }
}


int main()
{
    int dizi[] = {1,2,3,4,5,6,7,8,};
    siralama(&dizi[1] , &dizi[5]);


    return 0;
}

Programın çıktısı başlangıcı doğru olacak şekilde döngüden hiç çıkmıyor.

Program sürekli for döngüsüne giriyor. Neden böyle oluyor?

Ekran Görüntüsü (189).png
 
Çözüm
Bu durumda while döngüsü kullanmak daha okunaklı olacaktır bence.

C++:
#include <iostream>


using namespace std;

void siralama( int *ptr1,  int *ptr2) {
    while(ptr1 <= ptr2)
    {
        ptr1++;
        cout << "Deger: " << *ptr1 << endl;
    }
}


int main()
{
    int dizi[] = {1,2,3,4,5,6,7,8,};
    siralama(&dizi[1] , &dizi[5]);


    return 0;
}

For döngüsü ile isteniyorsa başına sadece noktalı virgül koymalısınız.
C++:
#include <iostream>


using namespace std;

void siralama( int *ptr1,  int *ptr2) {
    for(;ptr1 <= ptr2;ptr1++)
    {
        
        cout << "Deger: " << *ptr1 << endl;
    }
}


int main()
{
    int dizi[] = {1,2,3,4,5,6,7,8,};
    siralama(&dizi[1] , &dizi[5]);


    return 0;
}
Bu durumda while döngüsü kullanmak daha okunaklı olacaktır bence.

C++:
#include <iostream>


using namespace std;

void siralama( int *ptr1,  int *ptr2) {
    while(ptr1 <= ptr2)
    {
        ptr1++;
        cout << "Deger: " << *ptr1 << endl;
    }
}


int main()
{
    int dizi[] = {1,2,3,4,5,6,7,8,};
    siralama(&dizi[1] , &dizi[5]);


    return 0;
}

For döngüsü ile isteniyorsa başına sadece noktalı virgül koymalısınız.
C++:
#include <iostream>


using namespace std;

void siralama( int *ptr1,  int *ptr2) {
    for(;ptr1 <= ptr2;ptr1++)
    {
        
        cout << "Deger: " << *ptr1 << endl;
    }
}


int main()
{
    int dizi[] = {1,2,3,4,5,6,7,8,};
    siralama(&dizi[1] , &dizi[5]);


    return 0;
}
 
Çözüm
Uyarı! Bu konu 5 yıl önce açıldı.
Muhtemelen daha fazla tartışma gerekli değildir ki bu durumda yeni bir konu başlatmayı öneririz. Eğer yine de cevabınızın gerekli olduğunu düşünüyorsanız buna rağmen cevap verebilirsiniz.

Technopat Haberler

Yeni mesajlar

Geri
Yukarı