void main() {
/*Program yazarken kodlarımızı şekillendiren bazı durumlar olacaktır. Her zaman
kodları yazıp üstten aşağıya doğru hurra hepsi çalışsın diye bir durum söz konusu
olmaz. Bazen bazı şartlarla karşılaşırız. Yine üstten aşağıya doğru kodlarımız
çalışacaktır lakin bu şart dediğimiz durum gerçekleşirse gerekli blok kodumuz
çalışacaktır eğer şart geçerli değilse o bloğun çalışmasına gerek yoktur. Program
o bloğu atlayıp yoluna devam edecektir.
Biraz daha basit şekilde ifade etmek gerekirse kodlarımızı yazarken bazı seçeneklerle
karşlaşacağımız durumlar olacaktır. Bu durumlarda şöyle olursa program şöyle yapsın,
böyle olursa böyle yapsın diye en az bir en çok da durum ne kadar gerektiriyorsa o kadar
şartı değerlendirmeye alarak kodlarımızın tamamının değilde sadece gereken kıssımlarının
çalışmasını sağlıyoruz.
Burada karşımıza şart blokları diyebileceğimiz kontrol yapıları çıkıyor. Bu bölümde
if ile ilgili durumları inceleyeceğiz.
Neden en az bir durum dedik bununla zaten başlıyacağız anlatmaya. Bir durum vardır
ve sadece onun gerçekleştiği durumda bir işlem yapılması gerekiyordur diğer durumda
herhangi bir işlem yapmaya gerek yoktur.
Bir iki örnekle aklımıza yaklaştıralım bu seçeneği.
Örneğin trafikte otomatik ceza sistemine geçildi diyelim. Ama ciddi anlamda. Aynı
yerden 50 kere geçince bişi yokta 51 de ceza yazıldı gibi değil :). Disiplinli
bir şekilde her geçen arabayı yapay zeka destekli sistemle takip edip o bölgedeki
hız sınırı neyse onun üzerinde giden arabalara plakalarının tespit edilmesiyle
plakanın sahibi kişinin e posta adesine Tebrikler Ceza Yediniz. Buda Videonuz. Bir
daha ki sefere daha dikkatli olmalısın. Hadi Aslanım bu cezayı şimdi hemen ödersen
%70 indirimi kaçırma :). Hatta işi abartıp sadece mail değil plakanın sahibi kişiye
mailin yanında sms, sesli telefon mesajı, acele posta ile mektup, e devlet sisteminden
direkt mesaj, acele telgraf, cep numarasına bağlı olduğu operatörle özel ekran mesajı,
hatta akıllı bilbord vb reklamlar vardı azınlık raporu filminde onun gibi kişiye
özel reklam panolarında bir adet cezanız var gibi reklamlar, hatta ve hatta çerez
politikalarıyla her türlü web sitesi mobil uygulama - oyun vb.
reklamların olduğu her yerde reklam olarak, ve aynı tel numarasıyla kayıtlı
olduğu sosyal medyalarda watsapda mesaj ve durum mesajı,
twitterda direkm mesaj ve mention :) vb. :):) daha her türlü yoldan kutlama
yapar gibi reklam şeklinde mesaj bombardımanı yapabiliriz.
Neden mi bu kadar önüne çıkarıyoruz kişinin.İndirim Abi. %70 indirim ne demek :)
Kim kime yapıyor faydalansın vitamin.
Aklıma gelen bu kadar şimdilik. Daha fazla ulaşacağımız durumlar olursa onalrıda
ekleriz ilerde :) Varsa aklınıza gelen yorum bırakabilirsiniz
ve değerlendirmeye alırız:)
Belirteyim de kimse haddini aşmasın.Bu şekilde hikayelememin
sebebi akılda daha iyi kalsın diye. Sonuçta ben öncelikle kendime anlatıyorum.
Ve isteyen herkese. İstemeyen çıkabilir. Yok yazmıcam :) Bir eleştiri: Bunu
açıklamak zorunda kalmak bile bazen acı veriyor...napıcan...hayata devam...
Şimdi örnekle ilgili durumunu ciddi olarak ele alalım. Hız limiti 90 olsun.
kodumuzla biz doksan bir den yukarıda giden her araca ceza yazıcaz. beki 90 ve
altında gidenler için birşey yapmamıza gerek var mı? Hayır. Tutup ta teşekkür
etmeye gerek yok dimi :)... Bu şekilde olacaksa kodumuzu sadece bir if şartıyla
yazabiliriz.
Bir de if syntaxına bakalım. Yani nasıl kullanıcaz.if kelimesini yazıyoruz.
bir normal parantez içine şatımız koşulumuz neyse onu yazıyor. sonra köşeli
parantez içine şartımız doğru olduğunda sağlandığında true döndüğünde
bir satır veya daha çok satır çalışması gereken kodlarımızı yazıyoruz.
if (koşul) {
kod
veya
kodlar
}
şimdi kodlayalım artık.
*/
/*
kodlar
kodlar
kodlar */
double hiz = 90.5;
if (hiz > 90) {
print("""
xx xx xx Plakalı Araç Hız Sınırını Aşmıştır.
Hızı $hiz km'dir.
Tüm Ceza Mesajları Yollansın:)""");
print("1.if bloğunun İÇİ çalıştı");
}
print("1.if bloğunun DIŞI çalıştı");
/*kodlar
kodlar
kodlar */
/*şimdi kodlarımızı yorumlayalım. kodumuzun üstüne ve altına kodlar kodlar diye
yorum satırları ekledim. Daha iyi anlayalım diye. şidmi program üsten aşağı geliyor.
tabi üsten aşağıya gelecek Ordu'nun deresi değil bu yukarı aksın yani alttan yukarı doğru
gitsin:) Şimdi program kodları işleye işleye geldi. double ile biz elle girdik hız
bilgisini ama gerçekte cihazdan otomatik gelecek o bilgi. double hız bilgisi okundu.
sonra alt satıra geldi baktı burda if var. ifin parantez içindeki şartına baktı.
true döndüyse bizde true dönecek bu sefer köşeli parantez içinde girdi. ne kadar
kod varsa çalıştırdı.ekrana üç adet print çıktısı verecek.kod bloğunun içinde 3
satırlı bir print var o çalışacak. sonra kod bloğunun içinde 1.if bloğunun İÇİ
çalıştı diye bir print var oda çalıkşacak. çünkü aynı blok içindeler. dikkat
ederseniz kod bloğunun dışında da 1.if bloğunun DIŞI çalıştı diye bir print var oda çalıştı.
ilk iki print şart doğru olduğu için program if bloğunun içine girdiğinden
bu ikiside if bloğunun içinde bulunduklarından ekrana çıktı verdiler. 3.print ise
dediğimiz gibi program bloktan çıkınca satır satır devam edeceğinden hemen ordaki
print te o sebeple ekrana çıktısını verdi.Üçüncü printin aşağıda örneklicez zamanı gelince
şart bloğuyla bir alakası yok. O her türlü çalışır. çünkü şart bloğunun dışında
programın ana akışında kendisine sıra gelince çalışcak olan koddur o. şart doğru olsa da
yanlış olsa da o print veya onun gibi kodlar kendi yoluna bakarlar her zaman.Ve program
satır satır ne kadar kod varsa aşağıya doğru yoluna devam etti gitti.
şimdi bir tane de 90 dan küçük bir değer girelim ve bakalım nasıl olacak.
*/
hiz = 70;
if (hiz > 90) {
print("""
xx xx xx Plakalı Araç Hız Sınırını Aşmıştır.
Hızı $hiz km'dir.
Tüm Ceza Mesajları Yollansın:)""");
print("2.if bloğunun İÇİ çalıştı");
}
print("2.if bloğunun DIŞI çalıştı");
/*şimdi bı kod bloğuna bakalım. üsten aşağıya kodlar okunuyor. hız bu sefer
70 olarak girilmiş. yani hız değşkeninin değerini 70 olarak tanımladık.
program bir alt satıra indi. orda if ile karşılaştı. hemen şartını kontrol
ediyor. bakıyor hız 90 dan küçük. yani şart false doğru değil. bu sefer if
bloğu diyeceğimiz köşeli parantezlerin içine girmeden devam edecek.
if bloğunun içindeki iki adet if ekrana çıktı vermeyecek doğal olarak.
lakin burda if bloğundan çıkınca hemen orda bir print daha var.
2.if bloğunun DIŞI çalıştı diye. bu çıktı vericek. çünkü ifin dışında kendileri.
devam eden kodlar varsa satır satır onları işlemeye devam edecek. */
/*bir örnek daha yapalım. Kısaca tekrar açıklayalım. tek bir şartımız var ve
bu şart doğru olduğu zaman bir kod bloğunu çalıştıracaksak ve yanlış olduğu
zaman hiç bir kod bloğu çalışmayacak ise böyle durumlarda if şartını kullanıyoruz.
Ya 2 şart veya daha fazla şart olduğu zaman ne yapacağız diyorsanız merak etmeyin
o durumları da ilerleyen derslerde inceleyeceğiz.
Bu seferde diyelim ki sürücü belgesi için başvuruların yapıldığı sistemi kodluyoruz.
Bu işin yazılımında bizim ilk şartımız nedir. Ön başvuru işlemi sırasında ilgili
kişinin yaşının 18 den büyük olması gerekir değil mi? ilk şartımız budur. Kişi kimlik
bilgilerini girer ön başvuru ekranında tam o anda Sen yazılımla kişinin kimlik
bilgisini nvi'den (Nüfus ve Vatandaşlık İşleri Genel Müdürlüğü)
kontrol edersin (biz şimdi direkt yaşını girerek bu işlemi yapıcaz :) )
kişi o gün 18 den büyükse sorun yok. Yok eğer 18 den küçükse
henüz 18 olmadığınız için başvuru yapamazsınız dersin ve diğer adımlara geçmesini
engellersin. Dikkat ederseniz sadece yaş 18 den küçükse hata verecek şart doğruysa
hata mesajı verecek şart yanlış ise bir şey yapmadan program devam edecek.
*/
int yas = 17;
print("ifin dış üstündeki print");
if (yas < 18) {
print("Yetişkin olmadığınız için başvuru yapamazsınız");
print("ifin içindeki print");
}
print("ifin dış altındaki print");
/*Kısaca kodu yorumlayalım. true durumunu yorumluyoruz. şu anda yazıldığı gibi.
int olarak yaşı 17 girdik. print("ifin dış üstündeki print"); bu ifade ekrana
çıktısını verecektir. çünkü zaten ifin dışında.
sonra if şartına sıra gelecek. şart doğru. çünkü 17 sayısı 18 den küçüktür.
o zaman ifin içindeki iki print de çıktısını ekrana yazdıracak.
yani bunlar
print("Yetişkin olmadığınız için başvuru yapamazsınız");
print("ifin içindeki print");
sonra if bloğundan çıkıyoruz. ve bir print daha var. Oda ekrana çıktısını verecek.
zaten oda iften bağımsız her halükarda çalışacaktır. oda budur.
print("ifin dış altındaki print"); */
/*birtane de bool ile ilgili bir if şartı yazalım.
diyelim app uygulamamız var. kişiler üye olmadan da uygulamamızı kullanabiliyorlar.
bizim görevimiz uygulamayı kullanan kişi uygulamamıza üye olmuş ise ve uygulamamızı
playstroe da puanlaMAMIŞ ise ona bir ekran açıp uygulamamızı puanlamasını tavsiye
etmek olsun. iki şart ekledim çünkü operatörleri boşuna mı öğrendik :)
*/
/*önce değişkenleri tanımlıyoruz. şimdi değişkenlerin bana hangi sonucu uygun ise
o sonuca göre sonuçlarını kontrol ettiriyorum. uyeMi ile kişinin üye olması
gerekli olduğu için true olması şartını kontrol edicem. üye değilse üye olacak
kadar uygulamayı benimsemediyse neme lazım şimdi eksi verir o :) o zaman ona
hatırlatmayayım...
Sonra puanladiMi ile daha önce puan verdiyse eğer ona sormamam lazım. demez mi
adam ikide bir ne diye bana hatırlatıyorsun. zaten 5 yıldız verdim ya ben. şimdi
onu 4 yapıp bu saçmalığı yazayım orda da görsün bu :)
ve bu iki şartı aynı anda kontrol ettirmem lazım. bunu mantıksal olarak kontrol
etmemiz gerekiyor. ikiside benim istediğim sonuç gelirse kişiye sormalıyız.
öncelikle bunu VE yada VEYA operatörlerinden biriyle kontrol ettirmem gerekiyor.
ikiside aynı anda ise evet siz söyleyin tabiki de VE kapısını kullanmamız doğru olacaktır.
kişi üye olmuş olacak ve daha önce puan vermemiş olacağı için ve ile uyeMi true
VE puanladiMi false gelince hemen o kişiyi kapıyoruz.
şimdi uyeMi true gelecek ve sorguda zaten true. Kafamız karışmasın bakın puanladiMi
nin değeri false gelmesi gerekiyor. o değer false gelecek ama bizim şartımıza göre
değer false gelsede sonuç olarak true dönmüş olacak. Çünkü biz onu false gelince
işleyeceğimiz bir değer olarak görüyoruz. kafalar karışmasın.
bitti mi. tabiki hayır.
biz daha şimdiye kadar kişiye soruyoruz. birde onun cevap hakkı var. ya puanlama
isticek yada sonra yaparım diye istemicek. burda da kişi true dönerse evet derse
ifin içine gircek ve bize puanlama yapıldı diye bildirim gönderecek. yok eğer
hayır derse bir şey yapmayacağız. ifin içine girmeden devam edeceğimiz için
print("Kullanıcı Uygulamayı Kullanmaya Devam Ediyor."); diye bu printten uygulama
kullanımı devam edecek. Çok önemli bir dikkat. Kullanıcı puan verdi de mi
biz bu printi gördük yoksa vermedi demi biz bu printi gördük sorusunun cevabını
bu printten öğrenemeyiz. Bu print iflerin dışındaki print. o yüzden cevap değeri
true veya false olsada bu print her türlü çalışır.Hatta cevap değişkeni ikinci
ifin içinde. program ilk ifin içine girmese bile bu print çalışacaktır.
biz kişinin puan verip vermediğini print("Puanlama yapıldı."); printinden
anlayabiliriz. Çünkü bu print sadece cevap değeri true olunca çalışacaktır.
puan vermese de verse de kullancı her zaman programı kullanmaya devam edecektir.
iki tane bir birinden bağımsız if şartını burada kontrol etmiş oluyoruz.
Tabi bu iş burda kalmaz. en az 7 en fazla 15 gün içinde
sana tekrar soracaz sayın kullanıcı. illaki bir bir yıldız da olsa alıcaz senden.
etkileşim iyidir. tabi 5 yıldız verseydi daha iyi etkileşim daha da iyidir derdik:)
*/
bool uyeMi = true;
bool puanladiMi = false;
bool cevap = true;
if (uyeMi == true && puanladiMi == false) {
print("Uygulayı puanlamak ister misin ?");
if (cevap == true) {
print("Puanlama yapıldı.");
}
}
print("Kullanıcı Uygulamayı Kullanmaya Devam Ediyor.");
/*kısaca kodu tekrar yorumlayalım.
uyeMi true, puanladiMi=false ve cevap=true olacak şekilde üç adet bool tipli
değişken tanımlıyoruz. giriş değerlerini bu şekilde verdik çünkü bu sonuçlar
sağlanırsa if bloğumuzda işlemler yapmamız gerekiyor.
sonra ilk if şartımızı yazdık. burada VE operatörünü kullandık çünkü iki şartın
sonucunun aynı anda istediğim değerlerde gelmesi gerekiyor. biri true diğeri false.
ve bu aynı anda olmalı. bir şart yeterli olsaydı o zaman VEYA ile işlem
yapabilirdik yalnız bize ikisi aynı anda lazım.
iki şart sağlanmaz ise en dış printe gidip program devam eder. iki şart sağlanınca
allttaki printle kullanıcıya bir soru iletiyoruz. puanlama yapıcanmı ve aynı yerde
yeni bir if ile cevap değişkenine cevap vermesini istiyoruz. Cevabı kullanıcı hayır
diye verirse hemen bu cevap ifinin içine program girmeden ana ifden de dışarı çıkar
ve son printe gider. tabi biz o cevabı evet olarak girdiğimiz için ekrana
puanlama yapıldı yazıyoruz ve iflerden çıkıp son printi ekrana yazdırıp
uygulamayı devam ettiriyoruz. */
/*
kodlarımızı her hangi bir derleyiciye yapıştırırsanız hatasız çalışacaktır.
istediğiniz gibi şartları değiştire değiştire denemeler yapabilirsiniz.
isterseniz kodları blok blok kopyalayıp daha net çıktıları okuyabilirsiniz.
*/
}
0 comments:
Soru, Görüş, Öneri ve Eklemek İstediklerinizi Yazabilirsiniz...