#include <iostream>
using namespace std;
bool Testing() {
static int Variable = 0;
if (Variable == 1) return true;
else {
Variable = 1;
Testing();
}
return false;
}
int main()
{
if (Testing()) cout << "True";
else cout << "False";
}
Yukarıdaki fonksiyon kendi içerisinde tekrar çağırıldığında if (Variable == 1) kısmı true döndüğü halde içerisindeki return true; komutu çalışmıyor ve ardından gelen hiçbir komut çalışmıyor.
Yazdığın kodun amacı ne? Variable değişkenini bir satır yukarıda 0 yapıp 1 olan sorguya girmesini nasıl bekleyebilirsin? Recursive yapmaya çalışıyorsun ama mantık hatası var.
Tamam ama recursive bu şekilde çalışmaz. Sen fonksiyonun en sonunda yine false döndürüyorsun. Yani fonksiyon 2. çalıştırdığında true döndürüyor ama kendi içinde true döndürüyor. En sonunda main methoda yine false dönüyor.
Tamam ama recursive bu şekilde çalışmaz. Sen fonksiyonun en sonunda yine false döndürüyorsun. Yani fonksiyon 2. çalıştırdığında true döndürüyor ama kendi içinde true döndürüyor. En sonunda main methoda yine false dönüyor.
Hayır, çıkmaz. O içteki fonksiyona değer döndürüyor. Sen ilk başta fonksiyona gittiğinde kod ilerliyor ve ikinci fonksiyonu çağırdığında o fonksiyon için değer döndürüyorsun. Kod ilerlemeye devam ediyor, kesilmiyor.
Hayır, çıkmaz. O içteki fonksiyona değer döndürüyor. Sen ilk başta fonksiyona gittiğinde kod ilerliyor ve ikinci fonksiyonu çağırdığında o fonksiyon için değer döndürüyorsun. Kod ilerlemeye devam ediyor, kesilmiyor.
İçteki fonksiyondan kastınız nedir? Breakpoint koyduğumda return true çalıştıktan sonra fonksiyonun dışına çıkıyor ancak tekrar girip sadece return false kısmını çalıştırıyor. Bu kısmını tam anlamadım. Öğrenebilmem için bir kaynak önerir misiniz? Baktıklarımda buna denk gelemedim.