İlk Programım: BioQuick

BioQuick'i nasıl buldunuz?


  • Kullanılan toplam oy
    18
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...

Milton Sirotta

Profesör
Katılım
16 Ekim 2012
Mesajlar
2,015
Reaksiyon puanı
4
Puanları
218
Abicim if yapısını çok yanlış anlamışsın sen, problem ordan kaynaklanıyor. Şöyle bir if yazımı olamaz (olur da asla çalışmaz):
Kod:
if (textBox3.Text == "Artvin")
{
if (textBox3.Text == "Balıkesir")
{
if (textBox3.Text == "Bilecik")
{
if (textBox3.Text == "Bingöl")
{
if (textBox3.Text == "Bitlis")
{
if (textBox3.Text == "Çanakkale")
{
if (textBox3.Text == "Denizli")
{
if (textBox3.Text == "Edirne")
{
if (textBox3.Text == "Eskişehir")
{
if (textBox3.Text == "Gümüşhane")
{
if (textBox3.Text == "Hakkari")
{
if (textBox3.Text == "Mersin")

Senin bu yazdığın şu anlama geliyor: textBox3'ün içeriği Artvin mi evet, textbox3'ün içeriği Balıkesir mi, textbox3'ün içeriği Bilecik mi.... diye gidiyor. Şimdi yorumlayalım, kutunun içinde Artvin yazsın, ilk if ifadesi doğru olacak, yeni textbox3.text=="Artvin" doğru, sonraki satır ne yapıyor? textbox3.text=="Balıkesir"? E Artvin dedik, balıkesir olmaz ki, dolayısıyla if yanlış olur, içine girmez ve balıkesir koşulunu yazdığın if'in parantezi nerde kapanıyorsa program ordan devam eder. Şimdi diğer senaryoyu düşünelim, diyelim ki kutuda balıkesir yazıyor, ilk if'e baktın, Artvin mi? değil, o zaman if'e girmedin, artvin koşulunu yazdığın if'in parantezi nerde kapandıysa program ordan devam edecek, balıkesir mi diye bakmayacak bile...

Şu şekilde yazarsan olur (textbox yerine kutu yazıyorum):
Kod:
if (kutu=="Adana" || kutu=="Bursa" || kutu=="Denizli")
{
    //atıyorum 'te olması gerekenler
}
else if (kutu=="Rize" || kutu="Urfa")
{
    //atıyorum 'de olması gerekenler
}

if ifadesinde aradaki || işareti veya demek, adana ise veya bursa ise veya denizli ise anlamına geliyor yani (ve için && kullanabilirsin). Şimdi buna göre bi daha dene bakalım...




İlk satırda karakter dizisi tanımlıyorum, char[] karakter dizisi demek ve dizinin elemanları da a,ı,u,o.
ikinci ve üçüncü satırda, kolaylık olsun diye değişken tanımlıyorum, ilki girilen şehrin ismi, ikincisi de şehrin kaç karakter olduğu.
üçüncü satırdaki if koşulu şu anlama geliyor:
sehir[0] yazdığımızda, şehrin ilk harfini elde ederiz (ör: Bursa için B harfi), eğer biz son harfe bakacaksak uzunluk-1 dememiz lazım çünkü saymaya sıfırdan başlıyoruz.
Bursa örneğinden devam edersek, uzunluk=5, sehir[4]=a olur.
Daha sonra kalinUnluler.Contains(xxxx) demek, xxxx değeri bu kalinUnluler dizisinin içinde var mı demek. Örnekten gidecek olursak, (a,ı,u,o) dizisi içerisinde a harfi var mı (Bursa'nın son harfi)? Koşul doğru olacak, evet var. O zaman if parantezi içindeki kısım çalıştırılacak. Mesela, Rize girilseydi, e var mı, yok, o zaman else kısmı çalıştırılacaktı.

String.Format ise aslında sehir+"'de" yazmakla aynı işi görüyor; ancak Ömer'in yaptığı gibi eğer uzun uzun xxx+yyy+zzz+ttt şeklinde + ile cümle kurarsak performans problemi oluşur. Bu proje elbette çok küçük olduğu için bir önemi yok ama nasıl alışırsanız öyle gidiyor. String birleştirirken zorda kalmadıkça, ya da sadece xx+yy yazacaksanız + kullanın derim. String.Format'ın detaylı kullanımı için Google'a bakabilirsiniz :)

Benzer şekilde, eğer boş string ataması yapacaksanız asla bosString=""; şeklinde atama yapmayın, onun yerine bosString=String.Empty; kullanın. Daha yolun çok başındayız, öğrenmeye devam :)
Cok tesekkurler || icin. Peki if dedik, else if'den sonra ne geliyor? Bu konulari sitenizde bulabilir miyim? Son olarak ornegin Visual C# icin "aritmetik operatorler" diye bir program izliyorum, ve baska farkli adlar da var, bildiginiz kadariyla bu adlarin ne anlama geldigini, yani bu adli videolarda hangi konu anlatilacagini yazarsaniz cok iyi olur.
 

Milton Sirotta

Profesör
Katılım
16 Ekim 2012
Mesajlar
2,015
Reaksiyon puanı
4
Puanları
218
Arkadaşlar oluşan bir hatadan dolayı programımı kullanıma kapatıyorum. Zaten fikri çok iyi değildi, kapatmayı düşünüyordum. Benim için iyi bir deneyim oldu. Beğenen, beğenmeyen herkese teşekkürler. [MENTION=194661]eSa[/MENTION] [MENTION=105290]erenberk[/MENTION] bir zahmet konuyu kapatın.
 
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Üst