Değişken Nedir? Yazılımda Değişken Türleri ve Kod Örnekleri
Bir uygulama açtığını düşün.
Giriş ekranında adın yazıyor. Sepette toplam fiyat değişiyor. Bir butona basınca ödeme durumu güncelleniyor. Bir öğrencinin çözdüğü soru sayısı artıyor. Bir kullanıcı profilinde e-posta, telefon, yaş ve üyelik bilgisi tutuluyor.
Peki yazılım bütün bu bilgileri nerede saklıyor?
İşte burada karşımıza değişken çıkar.
En sade tanımıyla değişken, yazılım içinde bir veriyi saklamak, gerektiğinde kullanmak ve bazen de değiştirmek için oluşturulan isimlendirilmiş alandır.
Bir değişkeni küçük bir kutu gibi düşünebilirsin. Kutunun üzerinde bir isim yazar, içinde de bir değer bulunur.
Örneğin:
String kullaniciAdi = "Mehmet";
int yas = 28;
bool aktifMi = true;
Burada üç farklı değişken var:
kullaniciAdi
yas
aktifMi
kullaniciAdi metin tutuyor.
yas sayı tutuyor.
aktifMi ise doğru veya yanlış bilgisini tutuyor.
Yani değişkenler, yazılımın verileri hatırlamasını sağlar.
Değişken Ne İşe Yarar?
Değişkenler olmadan yazılım geliştirmek neredeyse mümkün değildir. Çünkü yazılım dediğimiz şey aslında verilerle çalışır.
Bir mobil uygulamada değişkenler şunlar için kullanılabilir:
Kullanıcının adını saklamak
Giriş yapılıp yapılmadığını kontrol etmek
Sepet toplamını hesaplamak
Ödeme durumunu takip etmek
Form alanlarına girilen bilgileri tutmak
Öğrencinin tamamladığı görevleri saymak
Uygulama temasını değiştirmek
API’den gelen verileri ekrana yazdırmak
Basit bir alışveriş örneği düşünelim.
let sepetToplami = 1200;
sepetToplami = sepetToplami + 300;
console.log(sepetToplami);
Bu kodun çıktısı şöyle olur:
1500
Başta sepet toplamı 1200 idi. Sonra sepete 300 TL’lik ürün eklendi ve toplam 1500 oldu.
İşte değişkenin mantığı budur. Bir değeri tutar, gerektiğinde günceller ve programın farklı yerlerinde kullanılmasını sağlar.
Değişken Mantığı Nasıl Çalışır?
Bir değişken oluştururken genelde üç temel şey vardır:
Bölüm | Anlamı | Örnek |
|---|
Değişken adı | Veriye verdiğimiz isim | ogrenciAdi
|
Veri tipi | Değerin türü | String
|
Değer | Saklanan bilgi | "Ayşe"
|
Örnek:
String ogrenciAdi = "Ayşe";
Bu kodu günlük dille şöyle okuyabiliriz:
“ogrenciAdi adında bir değişken oluştur. Bu değişken metin tutsun ve içine Ayşe değerini koy.”
Değişken İsimlendirme Neden Önemlidir?
Kod yazarken değişken adı gelişigüzel verilmemelidir. Çünkü kodu sadece bilgisayar okumaz. Sen de okursun, ekip arkadaşın da okur, aylar sonra projeye tekrar döndüğünde yine sen okursun.
Kötü bir değişken adı şöyle olabilir:
String x = "Mehmet";
int a = 28;
bool b = true;
Bu kod çalışır ama neyin ne olduğu belli değildir.
Daha doğru kullanım şöyle olur:
String kullaniciAdi = "Mehmet";
int kullaniciYasi = 28;
bool kullaniciAktifMi = true;
Bu kod daha anlaşılırdır. Çünkü değişkenin ne tuttuğu isminden bellidir.
Yazılımda iyi değişken adı, kodun kalitesini ciddi şekilde artırır.
Veri Tipine Göre Değişken Türleri
Değişkenleri anlamanın en iyi yolu, tuttukları veri tiplerini öğrenmektir. Çünkü her veri aynı değildir. Bir ad ile fiyat aynı şekilde tutulmaz. Bir yaş bilgisiyle ödeme durumu da aynı türde değildir.
1. String Değişken
String, metinsel veri tutmak için kullanılır.
Ad, soyad, e-posta, açıklama, başlık, telefon numarası, adres gibi bilgiler genellikle string olarak tutulur.
String adSoyad = "Mehmet Karataş";
String email = "info@benmuhendisiniz.com";
String hizmetAdi = "Mobil uygulama geliştirme";
Telefon numarası da çoğu zaman string tutulur. Çünkü telefon numarasıyla matematiksel işlem yapmayız.
String telefon = "05551234567";
Şöyle düşünmek daha doğru olur:
Telefon numarası bir sayı gibi görünür ama aslında bir iletişim bilgisidir. Bu yüzden string olarak saklanması daha mantıklıdır.
2. Integer Değişken
Integer, tam sayı tutar.
Yaş, adet, stok, öğrenci sayısı, görev sayısı gibi değerlerde kullanılır.
int yas = 28;
int ogrenciSayisi = 150;
int tamamlananGorev = 8;
Basit bir örnek:
int toplamGorev = 10;
int tamamlananGorev = 7;
int kalanGorev = toplamGorev - tamamlananGorev;
print(kalanGorev);
Çıktı:
3
Burada program, toplam görevden tamamlanan görevi çıkarıyor ve kalan görevi hesaplıyor.
3. Double Değişken
Double, ondalıklı sayı tutar.
Fiyat, oran, ortalama, puan, konum bilgisi gibi değerlerde kullanılır.
double fiyat = 249.99;
double ortalamaNet = 72.5;
double indirimOrani = 0.15;
Örnek:
double urunFiyati = 500.0;
double indirimOrani = 0.20;
double indirimliFiyat = urunFiyati - (urunFiyati * indirimOrani);
print(indirimliFiyat);
Çıktı:
400.0
Bu örnekte ürün fiyatı 500 TL. İndirim oranı %20. Sonuçta indirimli fiyat 400 TL oluyor.
4. Boolean Değişken
Boolean, sadece iki değer alır:
true
false
Yani doğru veya yanlış bilgisini tutar.
bool girisYapildiMi = true;
bool odemeTamamlandiMi = false;
bool bildirimAcikMi = true;
Bir uygulamada çok sık kullanılır.
Örneğin kullanıcı giriş yaptıysa ana sayfaya yönlendirebiliriz:
bool kullaniciGirisYaptiMi = true;
if (kullaniciGirisYaptiMi) {
print("Ana sayfaya yönlendir.");
} else {
print("Giriş ekranını göster.");
}
Boolean değişkenler özellikle karar verme işlemlerinde çok önemlidir.
Mesela:
Bütün bu soruların cevabı çoğu zaman true veya false olur.
5. Liste Değişken
Birden fazla değeri tek değişkende tutmak için liste kullanılır.
Örneğin bir öğrencinin derslerini saklamak istiyoruz:
List<String> dersler = ["Matematik", "Türkçe", "Fen"];
Bu listede üç değer var:
Matematik
Türkçe
Fen
Liste içindeki elemanlara sıra numarasıyla ulaşılır. Programlama dillerinde sıra genellikle 0dan başlar.
print(dersler[0]);
print(dersler[1]);
print(dersler[2]);
Çıktı:
Matematik
Türkçe
Fen
Gerçek hayattan bir örnek:
List<String> gorevler = [
"Paragraf testi çöz",
"Matematik tekrar yap",
"Deneme analizi yap"
];
print(gorevler.length);
Çıktı:
3
Burada gorevler.length, listenin içinde kaç görev olduğunu verir.
6. Map / Object Değişken
Bazı veriler tek başına tutulmaz. Bir kullanıcıyı düşünelim.
Kullanıcının adı var, yaşı var, e-posta adresi var, aktiflik durumu var.
Bu bilgileri ayrı ayrı değişkenlerde tutabiliriz:
String ad = "Mehmet";
int yas = 28;
String email = "mehmet@example.com";
bool aktifMi = true;
Ama bu bilgileri tek bir yapı altında toplamak daha düzenli olabilir.
Dart’ta Map kullanabiliriz:
Map<String, dynamic> kullanici = {
"ad": "Mehmet",
"yas": 28,
"email": "mehmet@example.com",
"aktifMi": true
};
Bu yapı anahtar-değer mantığıyla çalışır.
Örneğin:
print(kullanici["ad"]);
print(kullanici["email"]);
Çıktı:
Mehmet
mehmet@example.com
JavaScript’te buna genellikle object denir:
const kullanici = {
ad: "Mehmet",
yas: 28,
email: "mehmet@example.com",
aktifMi: true
};
console.log(kullanici.ad);
Bu yapı özellikle API’den gelen verilerde çok kullanılır.
7. Dynamic Değişken
Bazı dillerde değişkenin tipi sonradan değişebilir. Dart’ta bunun için dynamic kullanılabilir.
dynamic veri = "Merhaba";
veri = 25;
veri = true;
Bu kod çalışır. Çünkü dynamic, değişkenin farklı türde değerler almasına izin verir.
Ama dikkatli kullanılmalıdır.
Çünkü değişkenin ne tuttuğu belirsizleşirse hata yapma ihtimali artar. Özellikle büyük projelerde mümkün olduğunca net veri tipi kullanmak daha sağlıklıdır.
Daha güvenli kullanım:
String baslik = "Hoş geldiniz";
int adet = 5;
bool aktifMi = true;
Bu şekilde kod daha okunabilir ve kontrol edilebilir olur.
Kapsama Göre Değişken Türleri
Değişkenleri sadece veri tipine göre değil, kullanıldıkları yere göre de ayırabiliriz.
1. Local Değişken
Local değişken, sadece tanımlandığı alan içinde kullanılabilir.
Örneğin bir fonksiyonun içinde tanımlanan değişken, sadece o fonksiyon içinde çalışır.
void selamVer() {
String mesaj = "Merhaba Mehmet";
print(mesaj);
}
Buradaki mesaj değişkeni sadece selamVer fonksiyonunun içinde geçerlidir.
Fonksiyonun dışından bu değişkene ulaşamazsın.
void selamVer() {
String mesaj = "Merhaba Mehmet";
print(mesaj);
}
// print(mesaj); // Hata verir
Local değişkenler, kodun daha düzenli ve kontrollü olmasını sağlar.
2. Global Değişken
Global değişken, daha geniş alanda erişilebilen değişkendir.
String uygulamaAdi = "Ben Mühendisiniz";
void ekranaYaz() {
print(uygulamaAdi);
}
Burada uygulamaAdi, fonksiyonun dışında tanımlandığı için farklı yerlerden erişilebilir.
Ama global değişkenleri gereksiz fazla kullanmak doğru değildir. Çünkü proje büyüdükçe hangi değerin nerede değiştiğini takip etmek zorlaşır.
Küçük projelerde pratik olabilir. Büyük projelerde ise daha kontrollü yapı kullanmak gerekir.
3. Instance Değişken
Bir sınıfın içinde tanımlanan ve o sınıftan oluşturulan nesneye ait olan değişkendir.
Dart örneği:
class Kullanici {
String ad;
int yas;
Kullanici(this.ad, this.yas);
}
void main() {
Kullanici kullanici1 = Kullanici("Mehmet", 28);
print(kullanici1.ad);
print(kullanici1.yas);
}
Burada ad ve yas, Kullanici sınıfına ait değişkenlerdir.
Her kullanıcı nesnesinin kendi adı ve yaşı olabilir.
Kullanici kullanici1 = Kullanici("Mehmet", 28);
Kullanici kullanici2 = Kullanici("Ayşe", 24);
Bu iki kullanıcı farklı değerlere sahiptir.
4. Static Değişken
Static değişken, sınıftan oluşturulan nesnelere değil, doğrudan sınıfın kendisine bağlıdır.
class Ayarlar {
static String uygulamaAdi = "Ben Mühendisiniz";
}
void main() {
print(Ayarlar.uygulamaAdi);
}
Burada uygulamaAdi değişkenine erişmek için sınıftan nesne oluşturmaya gerek yoktur.
Static değişkenler genellikle ortak ayarlar, sabit değerler veya uygulama genelinde kullanılacak bilgiler için tercih edilir.
Değiştirilebilir ve Sabit Değişkenler
Bazı değişkenlerin değeri değişebilir. Bazılarının ise değişmemesi gerekir.
Örneğin sepet toplamı değişebilir:
int sepetToplami = 500;
sepetToplami = 750;
Ama uygulama adı çoğu zaman değişmez:
const String uygulamaAdi = "Ben Mühendisiniz";
Bu yüzden sabit değerler için const veya bazı dillerde final gibi yapılar kullanılır.
Dart’ta var, final ve const
Dart dilinde değişken tanımlarken var, final ve const sık kullanılır.
var
Değeri sonradan değişebilir.
var puan = 80;
puan = 95;
Burada puan önce 80, sonra 95 oldu.
final
Değer bir kez atanır, sonra değiştirilemez.
final String kullaniciId = "abc123";
Şunu yapmaya çalışırsak hata alırız:
// kullaniciId = "xyz789"; // Hata verir
final, özellikle çalışma zamanında belli olan ama sonradan değişmemesi gereken değerlerde kullanılır.
const
Derleme zamanında belli olan sabit değerler için kullanılır.
const double pi = 3.14;
const String siteAdi = "Ben Mühendisiniz";
const değerler tamamen sabittir.
Basit ayrım şöyle yapılabilir:
Yapı | Değer değişir mi? | Ne zaman kullanılır? |
|---|
var
| Evet | Değişebilir değerlerde |
final
| Hayır | Bir kez atanacak değerlerde |
const
| Hayır | Tamamen sabit değerlerde |
JavaScript’te var, let ve const
JavaScript’te değişken tanımlamak için var, let ve const kullanılır.
var
Eski kullanımdır. Güncel projelerde çok önerilmez.
var ad = "Mehmet";
let
Değeri değişebilen değişkenler için kullanılır.
let sepetToplami = 500;
sepetToplami = 750;
const
Değeri değişmeyecek değişkenler için kullanılır.
const siteAdi = "Ben Mühendisiniz";
Şunu yaparsak hata alırız:
// siteAdi = "Yeni Site"; // Hata verir
Güncel JavaScript projelerinde genel yaklaşım şudur:
Değer değişmeyecekse const, değişecekse let kullanılır.
Null Değişken Nedir?
Bazı durumlarda bir değişkenin değeri henüz belli olmayabilir. Bu durumda null kavramı devreye girer.
null, “şu anda değer yok” anlamına gelir.
Örneğin kullanıcı henüz profil fotoğrafı eklememiş olabilir.
String? profilFotografi = null;
Dart’ta String? ifadesi, bu değişkenin string değer alabileceğini veya null olabileceğini gösterir.
Daha sonra değer atanabilir:
profilFotografi = "profil.jpg";
Null değerler dikkatli yönetilmezse uygulamada hata oluşabilir. Bu yüzden özellikle modern dillerde null kontrolü önemlidir.
Örnek:
String? kullaniciAdi;
if (kullaniciAdi != null) {
print(kullaniciAdi);
} else {
print("Kullanıcı adı bulunamadı.");
}
Bu kontrol sayesinde uygulama daha güvenli çalışır.
Değişken İsimlendirme Kuralları
Değişken adı verirken bazı kurallara dikkat etmek gerekir.
İyi değişken adı:
Anlaşılır olmalı
Ne tuttuğunu belli etmeli
Çok kısa ve anlamsız olmamalı
Gereksiz uzun olmamalı
Türkçe karakter kullanılmamalı
Boşluk içermemeli
Sayı ile başlamamalı
Yanlış örnekler:
String öğrenciAdı = "Ayşe";
int 1sayi = 10;
String kullanici adi = "Mehmet";
Daha doğru kullanım:
String ogrenciAdi = "Ayşe";
int sayi1 = 10;
String kullaniciAdi = "Mehmet";
Yazılımda en çok kullanılan isimlendirme biçimlerinden biri camelCase yapısıdır.
String kullaniciAdi = "Mehmet";
int toplamSoruSayisi = 120;
bool odemeTamamlandiMi = true;
Burada ilk kelime küçük harfle başlar, sonraki kelimelerin ilk harfi büyük yazılır.
Gerçek Hayattan Bir Örnek: Öğrenci Takip Uygulaması
Şimdi değişkenleri daha gerçekçi bir örnek üzerinden düşünelim.
Diyelim ki bir öğrenci takip uygulaması geliştiriyoruz. Bu uygulamada öğrencinin adı, sınav türü, çözdüğü soru sayısı, tamamladığı görevler ve ödeme durumu tutulacak.
Bunun için şöyle değişkenler olabilir:
String ogrenciAdi = "Zeynep";
String sinavTuru = "YKS";
int cozulmusSoruSayisi = 450;
double ortalamaNet = 78.5;
bool odemeTamamlandiMi = true;
List<String> tamamlananGorevler = [
"Paragraf testi",
"Matematik konu tekrarı",
"Deneme analizi"
];
Bu değişkenler sayesinde uygulama öğrencinin durumunu takip edebilir.
Mesela ödeme tamamlandıysa öğrenci panele erişebilir:
if (odemeTamamlandiMi) {
print("Öğrenci paneline erişim verildi.");
} else {
print("Ödeme bekleniyor.");
}
Ya da tamamlanan görev sayısı gösterilebilir:
print("Tamamlanan görev sayısı: ${tamamlananGorevler.length}");
Çıktı:
Tamamlanan görev sayısı: 3
Bu örnek bize şunu gösterir:
Değişkenler sadece teorik bir konu değildir. Gerçek uygulamaların neredeyse her ekranında kullanılır.
Değişken Kullanırken Yapılan Yaygın Hatalar
Değişken konusu basit görünür ama yanlış kullanıldığında kodu karmaşık hale getirebilir.
1. Anlamsız Değişken İsimleri Kullanmak
String a = "Mehmet";
int b = 28;
Bu kodun ne anlattığı belli değildir.
Daha iyi kullanım:
String kullaniciAdi = "Mehmet";
int kullaniciYasi = 28;
2. Yanlış Veri Tipi Seçmek
Örneğin fiyat bilgisi int yerine çoğu zaman double olmalıdır.
double fiyat = 249.99;
Telefon numarası ise sayı değil, string tutulmalıdır.
String telefon = "05551234567";
3. Gereksiz Global Değişken Kullanmak
Her şeyi global değişken yapmak kısa vadede kolay gibi görünür. Ama proje büyüdükçe kontrol zorlaşır.
Daha sağlıklı olan, değişkeni gerçekten ihtiyaç duyulan yerde tanımlamaktır.
4. Null Kontrolü Yapmamak
Bir değişkenin değeri boş olabilir. Bunu kontrol etmeden kullanmak hata oluşturabilir.
String? ad;
if (ad != null) {
print(ad);
} else {
print("Ad bilgisi yok.");
}
5. Sabit Olması Gereken Değeri Değişken Yapmak
Eğer bir değer değişmeyecekse onu sabit olarak tanımlamak daha doğrudur.
const String uygulamaAdi = "Ben Mühendisiniz";
Bu hem kodun niyetini belli eder hem de gereksiz değişiklikleri engeller.
Değişkenler Neden Yazılımın Temelidir?
Yazılım geliştirmeye yeni başlayan biri için değişkenler küçük bir konu gibi görünebilir. Ama aslında değişkenleri doğru anlamak, yazılım mantığını anlamanın ilk adımlarından biridir.
Çünkü yazılımda neredeyse her şey veriyle ilgilidir.
Kullanıcıdan veri alırsın.
Veriyi değişkende tutarsın.
Bu veriyi işler, kontrol eder ve ekrana yansıtırsın.
Gerektiğinde veritabanına kaydedersin.
Sonra tekrar çekip kullanıcıya gösterirsin.
Yani değişken, yazılımın veriyle kurduğu ilişkinin başlangıç noktasıdır.
Kısa Bir Özet
Değişken, yazılım içinde veri saklamak için kullanılan isimlendirilmiş alandır.
En çok kullanılan değişken türleri şunlardır:
String: Metin tutar.
int: Tam sayı tutar.
double: Ondalıklı sayı tutar.
bool: Doğru/yanlış bilgisi tutar.
List: Birden fazla değeri tutar.
Map/Object: Anahtar-değer yapısında veri tutar.
dynamic: Farklı türde değerler alabilir.
final: Bir kez değer alır, sonra değişmez.
const: Sabit değerler için kullanılır.
local değişken: Sadece tanımlandığı alanda çalışır.
global değişken: Daha geniş alanda erişilebilir.
static değişken: Sınıfa bağlı ortak değişkendir.
Değişkenleri doğru kullanmak, temiz ve anlaşılır kod yazmanın temelidir.
Sık Sorulan Sorular
Değişken nedir?
Değişken, yazılım içinde bir veriyi saklamak ve gerektiğinde kullanmak için oluşturulan isimlendirilmiş alandır.
Değişken ne işe yarar?
Kullanıcı adı, yaş, fiyat, ödeme durumu, sepet toplamı, görev listesi gibi bilgileri program içinde tutmaya yarar.
String değişken nedir?
String değişken metinsel veri tutar. Ad, soyad, e-posta, açıklama ve başlık gibi bilgiler string olarak saklanabilir.
Integer değişken nedir?
Integer değişken tam sayı tutar. Yaş, adet, stok, soru sayısı gibi değerlerde kullanılır.
Boolean değişken nedir?
Boolean değişken sadece true veya false değerini tutar. Genellikle kontrol işlemlerinde kullanılır.
Liste değişken nedir?
Liste değişken, birden fazla değeri tek bir değişkende tutmak için kullanılır. Örneğin ders listesi, görev listesi veya ürün listesi tutulabilir.
Local değişken ile global değişken farkı nedir?
Local değişken sadece tanımlandığı alan içinde kullanılır. Global değişken ise daha geniş bir alandan erişilebilir.
final ve const farkı nedir?
final, değeri bir kez atanıp sonradan değişmeyen değişkendir. const ise derleme zamanında belli olan sabit değerler için kullanılır.
Değişken adı nasıl verilmelidir?
Değişken adı anlaşılır, sade ve ne tuttuğunu belli edecek şekilde yazılmalıdır. Örneğin x yerine kullaniciAdi yazmak daha doğrudur.
Yazılım öğrenirken değişkenleri iyi bilmek neden önemlidir?
Çünkü değişkenler yazılımın temelidir. Veri saklama, veri işleme, koşul kontrolü, listeleme ve hesaplama gibi birçok işlem değişkenler üzerinden yapılır.
Yorumlar (0)
Henüz yorum yapılmamış. İlk yorumu sen yap!
Yorum Yap