Çözüldü C# Kullanıcıdan Tekrar Tekrar Veri Almak

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

NoceBlen

Kilopat
Katılım
1 Şubat 2014
Mesajlar
79
Çözümler
3
Merhabalar,
C# dersimin vizesine çalışıyorum fakat bir konuda takıldım. Sormak istediğim olay şu, örneğin kullanıcıdan pozitif bir sayı girmesini istedik diyelim. Kullanıcı 0 girmiş olsun. Benim ona "lütfen pozitif bir sayı giriniz." yazısını çıkartmam ve bütün kod sistemini baştan çalıştırmam gerekiyor. Baştan çalıştırma dediğimde aklıma döngüler geldi fakat ne kadar denediysem yapamadım.

Aklımdaki kod şeması şu şekilde:

İlk başta kullanıcıdan bir girdi alıyoruz;
girdi 0 ise
"Lütfen pozitif bir sayı giriniz."
kodları baştan başlatacak o bulamadığım kod;
girdi < 0 ise
"Negatif bir sayı girdiniz, lütfen pozitif sayı giriniz."
kodları baştan başlatacak kod;
girilen sayıyla ilgili işlemlerim;
konsola yazdırmak;

Yanlış anlaşılma olmasın, benim için kod yazın demiyorum. Sadece bu şekilde düşündüm, if - else falan kullandım ama ne yaparsam yapayım kodları baştan başlatamadım. Bilen varsa yardım ederse sevinirim.
 
Çözüm
Şöyle göstereyim;

Şu şekilde de açıklaması olsun;
C#:
using System;
                
public class Program
{
    public static void Main()
    {
        Console.Write("Pozitif bir sayı giriniz: "); // Kullanıcı bilgilendirmesi.
        while (true) // Sonsuz döngü. Doğru ise bitirilecek, yanlış ise devam edilecek.
        {
            int number = Int32.Parse(Console.ReadLine()); // Sayı okuma.
        
            if (number <= 0) // Sayı sağlaması.
            {
                Console.Write("Pozitif bir sayı girmediniz. Lütfen tekrar giriniz: "); // Yanlış ise bilgilendirme.
                continue; // Döngü devam ettirme, else bloğuna girmez ve tekrar sayı okuma yapar.
            }
            else
            {
                Console.Write("Girdiğiniz sayı: " + number); // Doğru ise sayıyı yazdırma.
                break; // While bloğunda çıkar ve program alt satırlardan devam eder. Bu örnekte farklı satır olmadığı için program kapanır. Kapanmaması için while sonrasına bir "Console.Write" eklenebilir.
            }
        }
    }
}
Şöyle göstereyim;

Şu şekilde de açıklaması olsun;
C#:
using System;
                
public class Program
{
    public static void Main()
    {
        Console.Write("Pozitif bir sayı giriniz: "); // Kullanıcı bilgilendirmesi.
        while (true) // Sonsuz döngü. Doğru ise bitirilecek, yanlış ise devam edilecek.
        {
            int number = Int32.Parse(Console.ReadLine()); // Sayı okuma.
        
            if (number <= 0) // Sayı sağlaması.
            {
                Console.Write("Pozitif bir sayı girmediniz. Lütfen tekrar giriniz: "); // Yanlış ise bilgilendirme.
                continue; // Döngü devam ettirme, else bloğuna girmez ve tekrar sayı okuma yapar.
            }
            else
            {
                Console.Write("Girdiğiniz sayı: " + number); // Doğru ise sayıyı yazdırma.
                break; // While bloğunda çıkar ve program alt satırlardan devam eder. Bu örnekte farklı satır olmadığı için program kapanır. Kapanmaması için while sonrasına bir "Console.Write" eklenebilir.
            }
        }
    }
}
 
Çözüm

Yeni konular

Geri
Yukarı