Hata nerede ? Koşul kodu döngü içinde değil mi ? 0'dan küçük şeylerde faktöriyel 1 çıkıyor

image

Eksi sayılarda for döngüsü çalışmıyor doğrudan değeri döndürüyor.

1 Beğeni

Teşekkürler adamsınız

@sonsuz Benim yapmak istediğim gibi nasıl yapabilirim peki ? Bu kısmı yapan kişi eksi sayıları muhataba almamış bilerek, neden bilmiyorum ama. return vs gibi şeyleri daha öğrenmedim.

if i for dan önce kullan. Eksi ifade varsa geçersiz sayı dersin, 0 ise 1 dersin, sonra faktöriyel hesaplarsın. İf elif else kalıbı işini görür

Teşekkürler @sonsuz . Negatifler için if i nasıl sağlayabileceğime baktım sonra fonksiyonun içini komple while true döngüsüne aldım her yerde break kullandım. Bu haliyle başarmış hissediyorum ama pek tatmin olmadım bu while true kullanımıyla.

While neden kullandın ki anlamadım.

Başka türlü hep bir hata aldım ilk defa bu komple oldu. Dünden beri bu basit şeyle uğraşıyorum iyice içim sıkıldı.

Yaptım çok şükür.
image

1 Beğeni

image

@sonsuz son bir rahatsızlık vereceğim, -1 yazdıktan sonra geçersiz sayı diyor ama ben geçersiz sayı diyip döngünün başa dönmesini ve yeniden girdi oluşturmamı istiyorum o nasıl olacak ?

Faktöriyel fonksiyonunu çalıştırmadan önce kontrol edebilirsin. input ile alacaksan. Veya faktöriyel fonksiyonunun içinde de while döngüsü kurabilirsin yine input ile istersin yeni değeri.

İkisi de olur ama ilk yöntem daha iyidir. Hatta faktöriyel fonksiyonunda geçersiz sayılı bölümü kaldırırsın.