Arama butonu
Bu konudaki kullanıcılar: 1 misafir
3
Cevap
1548
Tıklama
0
Öne Çıkarma
C# Console - string ifade girişini engelleme
S
9 yıl
Er
Konu Sahibi

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();
}
}



F
9 yıl
Yüzbaşı

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ı >
Bu mesaja 1 cevap geldi.
S
9 yıl
Er
Konu Sahibi

@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


Bu mesaja 1 cevap geldi.
J
9 yıl
Onbaşı

if else yapısını kullanabilirsin misal kulanıcı eğer harf girerse lütfen rakam giriniz diye ekrana bi uyarı bastırabilirsin.



DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.