Çö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?

 
Çö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
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…