Şimdi Ara

C# Console - string ifade girişini engelleme

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir (1 Mobil) - 1 Masaüstü1 Mobil
5 sn
4
Cevap
0
Favori
1.590
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Arkadaşlar ben basit 4 işlem yapabilen bir hesap makinesi yaptım konsoldan. Ama sorun şu ki;

    programın işlem yapacağı esnada kullanıcının integer yerine string bir ifade girmesi programa hata verdirtiyor. Yani misal çarpma işlemi sırasında kullanıcıya bir değer girmesini söyleyince eğer kullanıcı integer(sayısal) veri girerse program düzgün çalışıyor ancak sözel bir ifade girmesi(mesela"K" harfi) programı çökertiyor.

    ben bu kullanıcının sözel ifade girmesini nasıl engelleyebilirim? Hangi komutla? Örnek vererek açıklayacak biri olursa çok memnun olurum.

    PROGRAMIM BU - EĞER BUNU O İSTEDİĞİM ŞEKLE GETİREBİLİRSENİZ ÇOK MEMNUN OLURUM;

    Console.WriteLine("Merhaba");
    Console.WriteLine("Bu program 4 işlem yapabilen bir hesap makinesidir");
    Console.ReadKey();
    Console.Clear();
    Console.WriteLine("İşlem tipinizi seçin");
    Console.WriteLine("1 - TOPLAMA");
    Console.WriteLine("2 - ÇIKARMA");
    Console.WriteLine("3 - ÇARPMA");
    Console.WriteLine("4 - BÖLME");
    Console.WriteLine(" ");
    string islemTipi = Console.ReadLine();
    int islemSecimi = Convert.ToInt32(islemTipi);
    Console.Clear();
    if (islemSecimi == 1)
    {
    Console.WriteLine("birinci sayıyı girin");
    string toplamaIslemi = Console.ReadLine();
    int toplamaBirinciSayi = Convert.ToInt32(toplamaIslemi);
    Console.Clear();
    Console.WriteLine("ikinci sayıyı girin");
    string toplamaIslemiIkinci = Console.ReadLine();
    int toplamaIkinciSayi = Convert.ToInt32(toplamaIslemiIkinci);
    Console.Clear();
    int toplam = toplamaBirinciSayi + toplamaIkinciSayi;
    Console.WriteLine("Sonuç=" + toplam);
    Console.ReadKey();
    }
    else if (islemSecimi == 2)
    {
    Console.WriteLine("birinci sayıyı girin");
    string cikarmaIslemi = Console.ReadLine();
    int cikarmaBirinci = Convert.ToInt32(cikarmaIslemi);
    Console.Clear();
    Console.WriteLine("ikinci sayıyı girin");
    string cikarmaIslemiIkinci = Console.ReadLine();
    int cikarmaIkinci = Convert.ToInt32(cikarmaIslemiIkinci);
    Console.Clear();
    int cikarmaSonuc = cikarmaBirinci - cikarmaIkinci;
    Console.WriteLine("Sonuç=" + cikarmaSonuc);
    Console.ReadKey();
    }
    else if (islemSecimi == 3)
    {
    Console.WriteLine("birinci sayıyı girin");
    string capmaIslemi = Console.ReadLine();
    int capmaBirinci = Convert.ToInt32(capmaIslemi);
    Console.Clear();
    Console.WriteLine("ikinci sayıyı girin");
    string carpmaislem = Console.ReadLine();
    int carpmaIkinci = Convert.ToInt32(carpmaislem);
    Console.Clear();
    int carpim = capmaBirinci * carpmaIkinci;
    Console.WriteLine("Sonuç=" + carpim);
    Console.ReadKey();
    }
    else if (islemSecimi == 4)
    {
    Console.WriteLine("birinci sayıyı girin");
    string x = Console.ReadLine();
    double y = Convert.ToInt32(x);
    Console.Clear();
    Console.WriteLine("ikinci sayıyı girin");
    string w = Console.ReadLine();
    double z = Convert.ToInt32(w);
    Console.Clear();
    if (z != 0)
    {
    double bolum = y / z;
    Console.WriteLine("Sonuç=" + bolum);
    Console.ReadKey();
    }
    else
    {
    Console.WriteLine("SIFIRA BÖLÜNMEZ. BÖLEN SAYIYI 0 DIŞINDA BİR DEĞER OLARAK GİRMELİYDİN");
    Console.ReadKey();
    }
    }
    else
    {
    Console.WriteLine("Farklı bir değer girdin.1-4 arası değer girmeliydin");
    Console.ReadKey();
    }
    }







  • Try catch blogu kullanabilirsin yada tryParse metodlarını kullanabilirsin, ikinci yöntem daha bilinçli olur.



    < Bu mesaj bu kişi tarafından değiştirildi Fatih513 -- 12 Mart 2015; 12:14:13 >
    < Bu ileti mobil sürüm kullanılarak atıldı >
  • @Fatih513
    Çok teşekkür ederim abi fakat ben pek anlayamadım tryParse metodu ile ilgili küçük bir örnek verirsen anlayabilirim

    TEŞEKKÜR EDERİM
  • if else yapısını kullanabilirsin misal kulanıcı eğer harf girerse lütfen rakam giriniz diye ekrana bi uyarı bastırabilirsin.
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.