Jump to content

C#'ta Dört İşlem Yapmak


Proctives
 Share

Recommended Posts

Merhaba arkadaşlar. C#'ta konsol uygulamasında bir program üzerinde oynamalar yapacağım ama ufak bir problemle karşılaştım. Şöyle ki: Kullanıcı ilk başta +-*/ ifadelerinden birini girmesi gerekiyor. Bunlar haricinde bir tuşa bastığında hata mesajı veriyor. Bu kısmı hatası olarak dört işlemden biriyle geçtikten sonra iki tane sayı girmesi isteniyor. İşte bu kısımda kullanıcı sayı yerine başka bir ifade girince yine bu uyarı mesajını versin istiyorum. Yani kullanıcıya iki sayı giriniz dediğinde kullanıcı sayıdan başka bir şey giremeyecek,girdiğinde hata mesajı ile karşılacak. Lütfen bilen bir arkadaşım varsa yardımcı olsun,rica ediyorum...


YAZDIĞIM KOD:
[spoiler]using System;

using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication3
{
class Program
{
static void Main(string[] args)
{
bool secimDogrumu = false;
char islem = 'a';
int s1, s2, sonuc = 0;
Console.Write("-----------------------------------------\n" ) ;
do
{
Console.Write("Aritmatik İşlemi [+-*/] Giriniz: ");
ConsoleKeyInfo key = Console.ReadKey();
Console.WriteLine("");
if (key.KeyChar == '+'
|| key.KeyChar == '-'
|| key.KeyChar == '*'
|| key.KeyChar == '/')
{
secimDogrumu = true;
islem = key.KeyChar;
}
else
{
Console.WriteLine("Hatalı İşlem!...Tekrar deneyiniz...");
}
}
while (!secimDogrumu);
Console.Write("İlk sayıyı giriniz: ")  ;
s1 = Convert.ToInt32(Console.ReadLine());
Console.Write("İkinci sayıyı giriniz: ");
s2 = Convert.ToInt32(Console.ReadLine());
Console.Write("------------------------------------------\n");

switch (islem)
{
case '+':
sonuc = s1 + s2;
Console.WriteLine("{0} ve {1} sayılarının sonucu: {2}\n\n", s1, s2, sonuc);
break;
case '-':
sonuc = s1 - s2;
Console.WriteLine("{0} ve {1} sayılarının sonucu: {2}\n\n", s1, s2, sonuc);
break;
case '*':
sonuc = s1 * s2;
Console.WriteLine("{0} ve {1} sayılarının sonucu: {2}\n\n", s1, s2, sonuc);
break;
case '/':
sonuc = s1 / s2;
Console.WriteLine("{0} ve {1} sayılarının sonucu: {2}\n\n", s1, s2, sonuc);
break;
default:
Console.WriteLine("Hatalı İşlem!...");
break;

}
}
}
}
[/spoiler]


Burada kırmızı ile işaretlediğim alanı sevdiğim bir abim düzenledi. Ama aynı hata mesajını aşağıdaki çıktıdayken de vermesini istiyorum...

[spoiler]2Wqydzp.png[/spoiler]


İlk sayıyı giriniz kısmında sayı yerine "k" harfine basınca "Hatalı işlem!" uyarısı vermesini istiyorum. Fakat bu şekilde bir hatayla karşılaşıyorum. Buraya nereyi değiştirmem lazım acaba?

[spoiler]

gToR41W.png

 

Lütfen bilen birisi varsa yardımcı olsun. Şimdiden teşekkür eder saygılarımı sunarım...

[/spoiler]

Link to comment
Share on other sites

Yardımın için çok teşekkür ederim ama eğer mümkünatı varsa tam olarak ne yazmam gerektiğini söyleyebilir misiniz? Dediğiniz gibi S1 satırı yerine bool rakamMi = int.TryParse(Console.ReadLine(), out s1); yazdım. Hatayı vermiyor fakat mesela ü ile 2 yi topluyup 0+2=2 dir diyor. Biraz fazla acemiyim,hoşgörün lütfen... Saygılarımla...

Link to comment
Share on other sites

static void Main(string[] args)  altında degişkenleri tanımladığınız yerde.   bool rakamMi = false; tanımlamasını yapın.

do while döngüsünden sonra gelen şu 4 satırı silip.

Console.Write("İlk sayıyı giriniz: ";
s1 = Convert.ToInt32(Console.ReadLine());
Console.Write("İkinci sayıyı giriniz: ");
s2 = Convert.ToInt32(Console.ReadLine());

aşağıda yazdığım kodları yerleştirin.

do
  {
      Console.Write("İlk sayıyı giriniz: ");
      rakamMi = int.TryParse(Console.ReadLine(), out s1);
      if (rakamMi)
      {
          rakamMi = false;
          Console.Write("İkinci sayıyı giriniz: ");
          rakamMi = int.TryParse(Console.ReadLine(), out s2);
          if (!rakamMi)
              Console.WriteLine("Lütfen sadece rakam giriniz !!! ");
      }
      else
          Console.WriteLine("Lütfen sadece rakam giriniz !!! ");
} while (!rakamMi);
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...