🚀 C# ile Programlamaya Giriş: Kodlamaya İlk Adımını At, Kendi Projelerini Geliştirmeye Başla!
00ANASAYFA 01YAZILAR 02EĞİTİM 03ELEKTRİK_ENERJİ 04OTOMOTİV_MÜHENDİSLİĞİ 05ARAÇLAR 06LAB 07SÖZLÜK 08ETİKETLER ♡OKUMA LİSTEM ⌕ARA
TRENG

Operatörler ve Tip Dönüşümü

Aritmetik, karşılaştırma ve mantıksal operatörleri; tam sayı bölmesi tuzağını; Parse, TryParse ve Convert ile güvenli dönüşümü öğreniyorsun.

Aritmetik operatörler

int a = 17, b = 5;

Console.WriteLine(a + b);  // toplama
Console.WriteLine(a - b);  // çıkarma
Console.WriteLine(a * b);  // çarpma
Console.WriteLine(a / b);  // bölme
Console.WriteLine(a % b);  // kalan (mod)
22
12
85
3
2

Dikkat: 17 / 5 sonucu 3'tür, 3,4 değil! İki taraf da int olduğunda bölme de tam sayı bölmesidir ve kesir atılır. Kalan işlemi (%) bir sayının çift mi tek mi olduğunu bulmak gibi işlerde çok kullanılır.

Tam sayı bölmesi tuzağı

Ondalıklı sonuç istiyorsan en az bir tarafı double yap:

int a = 17, b = 5;

Console.WriteLine(a / b);          // 3
Console.WriteLine((double)a / b);  // 3,4
Console.WriteLine(a / 5.0);        // 3,4

Parantez içinde (double) yazmaya tip dönüştürme (cast) denir. Önce a double'a çevrilir, sonra bölme yapılır.

Birleşik atama ve artırma

int sayac = 10;
sayac += 5;   // sayac = sayac + 5  -> 15
sayac -= 3;   // 12
sayac *= 2;   // 24
sayac++;      // 25
sayac--;      // 24

Karşılaştırma ve mantıksal operatörler

Karşılaştırma operatörleri (==, !=, <, >, <=, >=) her zaman bool döndürür. Mantıksal operatörler bunları birleştirir: && (ve), || (veya), ! (değil).

double gerilim = 3.3;
bool uygunMu = gerilim >= 3.0 && gerilim <= 3.6;
Console.WriteLine(uygunMu);   // True

bool alarm = gerilim < 3.0 || gerilim > 3.6;
Console.WriteLine(alarm);     // False
Console.WriteLine(!alarm);    // True

Sık hata: Eşitlik için == kullanılır, = atamadır. Ayrıca double değerlerini == ile karşılaştırmak tehlikelidir; 0.1 + 0.2 == 0.3 ifadesi False verir. Ondalıkları yaklaşık karşılaştır: Math.Abs(x - y) < 1e-9.

Metinden sayıya: Parse ve TryParse

ReadLine metin verir; sayıyla işlem yapmadan önce çevirmen gerekir.

Console.Write("Direnç (ohm): ");
string? giris = Console.ReadLine();

int direnc = int.Parse(giris!);       // geçersizse program HATA ile durur
Console.WriteLine(direnc * 2);

Kullanıcı "abc" yazarsa Parse bir hata fırlatır. Kullanıcı girdisinde daha güvenli yol TryParse'tır: başarılı olup olmadığını bool olarak söyler, sonucu out değişkenine koyar.

Console.Write("Gerilim (V): ");
string? giris = Console.ReadLine();

if (double.TryParse(giris, out double gerilim))
{
    Console.WriteLine($"Girdiğin gerilim: {gerilim} V");
}
else
{
    Console.WriteLine("Lütfen geçerli bir sayı gir.");
}

Türkçe ayarlı makinede ondalık için virgül yazılır (3,3); nokta yazarsan değer yanlış okunabilir. Bu, TryParse'ın o anki bölgesel ayarlara bakmasındandır.

Convert sınıfı ve örtük dönüşüm

Küçük tipten büyüğe dönüşüm kendiliğinden olur (örtük): int bir double'a konabilir. Büyükten küçüğe dönüşüm bilgi kaybedebileceği için açıkça yazman gerekir:

int tam = 7;
double ondalik = tam;          // örtük, sorun yok

double olcum = 9.99;
int kesilmis = (int)olcum;     // 9: kesir atılır, yuvarlama yapılmaz
int yuvarlanmis = Convert.ToInt32(olcum);   // 10: yuvarlar

Console.WriteLine($"{kesilmis} {yuvarlanmis}");
9 10

İpucu: Kullanıcıdan gelen her veri hatalı olabilir. Girdi aldığında önce TryParse ile doğrula, sonra kullan. Bu alışkanlık seni hata ayıklamaktan kurtarır.

Kendin dene

Kullanıcıdan iki sayı alan (TryParse ile), toplamlarını, farklarını, çarpımlarını ve bölümlerini (ondalıklı) yazan bir program yaz. İkinci sayı sıfırsa bölme yerine "Sıfıra bölünemez" yazsın.

// Mini sınav

Bir seçeneğe tıkla; doğru mu yanlış mı, anında ve nedeniyle birlikte göreceksin.

1. int a = 17, b = 5; için a / b ifadesinin sonucu nedir?
2. Kullanıcıdan gelen metni güvenli şekilde sayıya çevirmenin en iyi yolu hangisidir?
3. (int)9.99 ifadesi hangi değeri üretir?

Bitirdiğinde işaretle: ilerlemen kaydolur, +20 XP kazanırsın.

İpucu: ← → tuşlarıyla dersler arasında gezinebilirsin.