C# Else if kullandığım halde neden bu oluyor?

gereksiz0

Decapat
Katılım
28 Mart 2021
Mesajlar
10
Daha fazla  
Cinsiyet
Erkek
C#:
Random random = new Random();
 int kalan = random.Next(12);
 int discountPercentage = 0;

 if(kalan == 0)
 {
 Console.WriteLine("Your subscription has expired.");
 }
 else if(kalan == 1)
 {
 Console.WriteLine("Your subscription expires within a day!");
 discountPercentage = 20;
 }
 else if(kalan <= 5)
 {
 Console.WriteLine($"Your subscription expires in {discountPercentage} days.");
 discountPercentage = 10;
 }
 else if(kalan <= 10)
 {
 Console.WriteLine("Your subscription will expire soon. Renew now!");
 }

 if (discountPercentage > 0)
 {
 Console.WriteLine($"Renew now and save {discountPercentage}");
 }

Neden "else if" kullanmama rağmen, 0 gün kaldığında cevap alırken, neden bir, "Your subscription has expired." çıktısını bir de "Your subscription expires in 0 days.
Renew Now and save 10" çıktısını veriyor, ben zaten "else if" kullandım. tekrar neden 5'ten küçük kısmı için 0 olmadığını belirtmem gerekiyor?
 
Tam hatayı anlamadım ama şunu dener misiniz?

C#:
Random random = new Random();
int kalan = random.Next(12);
int discountPercentage = 0;

if (kalan == 0)
{
    Console.WriteLine("Your subscription has expired.");
}
else if (kalan == 1)
{
    discountPercentage = 20;
    Console.WriteLine("Your subscription expires within a day!");
}
else if (kalan <= 5)
{
    discountPercentage = 10;
    Console.WriteLine($"Your subscription expires in {kalan} days.");
}
else if (kalan <= 10)
{
    Console.WriteLine("Your subscription will expire soon. Renew now!");
}

if (discountPercentage > 0)
{
    Console.WriteLine($"Renew now and save {discountPercentage}%");
}
 
İşte Elif'ler olsa, Elif'ler unutulmaz 😜.

IF(X = 0)
{

}ELSE IF(X<5)
{

}

diye 1 olayı anlatan bloklarımız olsun.

Normlade X = 0 ise IF çalışır. Eğer x beşten küçük ve 0'dan farklı hangi sayı var ise de ELSE IF çalışır.
 
Son düzenleme:
Sorunuzu tam anlamadım. Sanırım ne sorduğunuzu kendiniz bilmiyorsunuz.

İf blokları bir kural geçerli olasaya kadar çalışmaya devam eder.
Hocam arkadaşın sorunu if ve else if yapısında çalışması. Normalde bu yapıda if çalışırsa diğer else if yapılarının çalışmaması lazım.
 
C#:
Random random = new Random();
 int kalan = random.Next(12);
 int discountPercentage = 0;

 if(kalan == 0)
 {
 Console.WriteLine("Your subscription has expired.");
 }
 else if(kalan == 1)
 {
 Console.WriteLine("Your subscription expires within a day!");
 discountPercentage = 20;
 }
 else if(kalan <= 5)
 {
 Console.WriteLine($"Your subscription expires in {discountPercentage} days.");
 discountPercentage = 10;
 }
 else if(kalan <= 10)
 {
 Console.WriteLine("Your subscription will expire soon. Renew now!");
 }

 if (discountPercentage > 0)
 {
 Console.WriteLine($"Renew now and save {discountPercentage}");
 }

Neden "else if" kullanmama rağmen, 0 gün kaldığında cevap alırken, neden bir, "Your subscription has expired." çıktısını bir de "Your subscription expires in 0 days.
Renew Now and save 10" çıktısını veriyor, ben zaten "else if" kullandım. tekrar neden 5'ten küçük kısmı için 0 olmadığını belirtmem gerekiyor?
Az önce online c# compiler ile kodunuzu çalıştırdım. Kalana sıfır verdiğimde sadece "Your subscription has expired" çıktısını aldım. Bir daha kontrol edin isterseniz, kodunuz doğru gözüküyor.
 
Az önce online c# compiler ile kodunuzu çalıştırdım. Kalana sıfır verdiğimde sadece "Your subscription has expired" çıktısını aldım. Bir daha kontrol edin isterseniz, kodunuz doğru gözüküyor.
ben de öyle yapınca cevap o çıkıyor ama random aldığında eğer 0 denk gelirse bi Your subscription has expired. çıkıyor bir de 5ten küçük olan kısma dahil ediyorve yüzde 10 indirim mesajı da geliyor, else if kullandıım için zaten eğer 0dan farklı ve 5ten küçük ise Console.WriteLine($"Your subscription expires in {daysUntilExpiration} days."); discountPercentage = 10; bu kodun çalışması gerekmiyor mu?

Hocam arkadaşın sorunu if ve else if yapısında çalışması. Normalde bu yapıda if çalışırsa diğer else if yapılarının çalışmaması lazım.
evet aynen öyle neden diğer kod da çalışıyor, ayrıca ben c# bilmiyorum ve öğrenmek için learn microsoft sitesini kullanıyorum. Orada benden böyle bir proje yapmamı istedi ve ben de yaptım, cevaba baktığımda ise doğru yaptığımı görüyorum ama sonuçta böyle bir hata ile karşılaşıyorum

Tam hatayı anlamadım ama şunu dener misiniz?

C#:
Random random = new Random();
int kalan = random.Next(12);
int discountPercentage = 0;

if (kalan == 0)
{
    Console.WriteLine("Your subscription has expired.");
}
else if (kalan == 1)
{
    discountPercentage = 20;
    Console.WriteLine("Your subscription expires within a day!");
}
else if (kalan <= 5)
{
    discountPercentage = 10;
    Console.WriteLine($"Your subscription expires in {kalan} days.");
}
else if (kalan <= 10)
{
    Console.WriteLine("Your subscription will expire soon. Renew now!");
}

if (discountPercentage > 0)
{
    Console.WriteLine($"Renew now and save {discountPercentage}%");
}
burada farklı olan nedir, Göremedim de

İşte Elif'ler olsa, Elif'ler unutulmaz 😜.

IF(X = 0)
{

}ELSE IF(X<5)
{

}

diye 1 olayı anlatan bloklarımız olsun.

Normlade X = 0 ise IF çalışır. Eğer x beşten küçük ve 0'dan farklı hangi sayı var ise de ELSE IF çalışır.
ama öyle olmadı işte 0 geldiği zaman yanlış cevabı alıyorum, fakat eşitleyip denediğimde ise çıkması gereken cevabı alıyorum
 
Son düzenleme:
Ben de öyle yapınca cevap o çıkıyor ama random aldığında eğer 0 denk gelirse bir Your subscription has expired. Çıkıyor bir de 5'ten küçük olan kısma dahil ediyorve yüzde 10 indirim mesajı da geliyor, else if kullandıım için zaten eğer 0'dan farklı ve 5'ten küçük ise Console. WriteLine($"Your subscription expires in {daysUntilExpiration} days."); discountPercentage = 10; bu kodun çalışması gerekmiyor mu?

Evet aynen öyle neden diğer kod da çalışıyor, ayrıca ben C# bilmiyorum ve öğrenmek için learn Microsoft sitesini kullanıyorum. Orada benden böyle bir proje yapmamı istedi ve ben de yaptım, cevaba baktığımda ise doğru yaptığımı görüyorum ama sonuçta böyle bir hata ile karşılaşıyorum

Burada farklı olan nedir, Göremedim de

Ama öyle olmadı işte 0 geldiği zaman yanlış cevabı alıyorum, fakat eşitleyip denediğimde ise çıkması gereken cevabı alıyorum

İf (x == 0) yaparsan, x =0 geldiğin çalışır.
if(x = 0) yaparsan çalışmaz.
 

Geri
Yukarı