Free Web Site - Free Web Space and Site Hosting - Web Hosting - Internet Store and Ecommerce Solution Provider - High Speed Internet
Search the Web

Do - Loop While ve Do - Loop Until Döngüsü


Do
Komutlar
Loop Until Şart

Do
Komutlar
Loop Until Şart

Bu dögülerin yukarıdakilerden tek farkı döngüye girerken değil çıkarken şart kontrol edilir.Yani döngü içerisindeki kod en az bir defa çalışır.

Örneğin kullanıcıya sınav notunu sorduğumuzu düşünelim. Gireceği not 0-100 aralığı dışında ise ; notu bu aralıkta girinceye kadar tekrar-tekrar sorulması gerekir. Bu iş Do - Loop Until yapısı uygundur. Çünkü döngü içerisinde not sorulduktan sonra not 0-100 aralığı dışında ise tekrar sorulması gerekir.

Dim nott'not değil,çünkü not özel bir deyim.
do
nott= InputBox ("Not Girişi","Sınav Notunuz","50")
Loop Until (nott > 0) and (nott < 100)

Döngü Kontrol İfadeleri



Exit Do


Exit Do komutu Do-Loop , While Wend döngülerinden birinde bazı şartların gerçekleşmesi durumunda döngüden çıkmak için kullanılır.

Private Sub Command1Click()
Dim i,j
j=0
do
i=i+1
j=j+i^2
Labell =j
if Text1="Son" then Exit Do
DoEvents
Loop until i>=10000000
MsgBox (i & ".adımda çıkıldı.")
End Sub
Burada 1' den 10000000'a kadar olan sayıların karelerinin toplanmasını sağlıyoruz. Ancak kullanıcı işlemi iptal etmek için text kutusuna Son yazarsa,işlem tamamlanmadan döngüden çıkıyoruz.

Exit For


Bu komutta For Next döngüsü tamamlanmadan,bazı şartlar gerçekleştiğinde döngüden çıkmaya yarar.

Exit Sub,Exit Function


Exit Sub ve Exit Function deyimleri alt program sonuna ulaşmadan alt programdan çıkmaya yarar.
Private Sub Command1_Click()
Dim i,j
j=Val(Text1)
If j < 0 Then Exit Sub
For i=1 to j
List1.AddItem "Log("& i &")=" & Log (i)/Log(10)
Next
End Sub
Burada da 1 den , Text1 kutusuna girilen sayıya kadar olan sayıların logaritmasını listeye ekliyoruz.Ancak kullanıcı kutuya 0 veya daha küçük bir sayı girmiş ise alt programdan çıkıyoruz.

End



Programı sona erdirir. Bütün açık olan formları ve dosyaları kapatır.

With-End With deyimi



Bir kontrole ait bir özellik değiştirilmek istendiği veya bir metod çağrıldığı durumlarda kontrol adının da verilmesi gerekir.Örneğin Text1 1 kontrolunun Left özelliğini 0 yapmak için

Text1.Left=0

Herhangi bir kontrol elemanının birden fazla özelliğini değiştirmek yada metodlarına ulaştırmak için With-End With deyimi kolaylık sağlar. Kullanım biçimi şöyledir.

With kontrol adı
Özellik = değer
Özellik = değer
......
End With
Artık bu blok içerisinde o kontrolun özelliklerine kontrolun ismi kullanılmadan ulaşılabilir.

Private Sub Command1_Click()
Combo1.clear
Combo1.additem "Ahlad"
Combo1.additem "MYO"
Combo1.additem "Bilg."
Combo1.additem "Bölümü"
Combo1.FontBold=True
Combo1.FontName="Courrier New"
End Sub

Operatörler




Bütün proglamlama dillerinde aritmetik ve lojik işlemleri yapmak için gerekli operatatörler bulunur.VB'de aritmetik işlemlerin bazıları operatörlerle yapılırken bazıları da fonksiyonlarla yapılır.
VB'de kullanılan aritmetik ve lojik operatörler şunlardır:

= Atama x=5
+ Toplama Print 20 + 5 '25
- Çıkarma Print 10 - 5 '5
* Çarpma Print 3 * 5 '15
/ Bölme Print 9 / 2 '4.5
\ Tam Bölme Print 9 \ 2 ' 4
& String Toplamı Print "Bayram" & "Paşa" ' BayramPaşa
^ Üst Print 4^2 '16
Mod Bölmede Kalan Print 5 Mod 2 '1
And Ve Print 5 And 17 '1(00101 And 10001=00001 )
Or Veya Print 7 Or 17 ' 23(00111 Or 10001=10111)
Xor Xor Print 7 Xor 17 '22 (000111 Xor 10001 =10110)
Not Değil Print Not & H1 '& HFFFE(Not 0000 0000 0000 0001=1111 1111 1111 1110)


Üst işleminin özelliğinden dolayı ^ operatörü yüksek dereceden kökleri bulmak içinde kullanılır.
Mod işlemi bir sayının başka bir sayıya bölümünde kalanı verir. Bu ilk bakışta programcılık açısından fazla önemli değil gibi gözükse de aslında bir sayının katlarını bulmak içinde kullanılabileceğinden oldukça kullanışlı bir operatördür.Birsayı başka bir sayının tam katı ise o sayıya bölümde kalan 0 olacaktır. Örneğin 1 den 100'e kadar olan sayıları toplayacak bir programda her 10 adım sonucunu ekranda göstermek istersek.
Dim i,Top
For i=1 to 100
Top = Top +i
If (i Mod 10) =0 Then Print Top
Next
Print " Sonuç:" & Top
Tablodaki And , Or , Xor ve Not operatörleri Lojik Operatörlerdir ve bit seviyesinde işlem yaparlar.

 
0 0 0 0 0 0 0 0 0 0 1
0 1 0 0 1 1 0 1 1 1 0
1 0 0 1 0 1 1 0 1
1 1 1 1 1 1 1 1 0

(1. Sütun And 2. Sütun Or 3. Sütun Xor 4. Sütun Not)

Bu opreratörlerin lojil anlamlarının ötesinde her birinin programcılık açısından önemli yerleri de vardır.
And işlemi ile bitin değeri önemlidir. Örneğin x sayısındaki 3. bitin değerinin 1'mi 0'mı olduğunu öğrenmek için x sayısını öyle bir sayı ile And işlemine tabi tutmak gerekir ki diğer bitlerin değeri göz ardı edilerek sadece istediğimiz bitin değerini öğrenebilelim. And işleminin özelliğinden dolayı 1 etkisiz eleman yani 1 sayısı ile diğerlerini de yutan elemanla yani 0 sayısı ile And işlemine tabi tutarsak sonuçta sadece istediğimiz sayı kalacaktır.

Dim x
x=InputBox ("bir sayı giriniz")
If (x and &h4)=0 Then
MsgBox (girdiğiniz sayının üçüncü biti 0")
Else
MsgBox ("girdiğiniz sayının üçüncü biti 1")
End If

Or işlemi ile bir bitin değeri değiştirilebilir. Örneğin bir sayıdaki diğer bitlerin bozmadan sadece üçüncü biti tutmamız gerekir ki diğer bitler konum değiştirmeden istediğimiz bitin değerini değiştirebilelim.

Xor işlemi ile de bir sayı bir nevi şifrelenebilmektedir. Bir sayı, başka bir sayı ile iki defa XOr işlemine tabi tutulursa sonuçta orjinal sayı elde edilmiş olur.
x=(x xor y) xor y
bu eşitlikten dolayı y şifresi ile x sayısı şifrelenebilmekte ve aynı sayı ile tekrar şifre çözülebilmektedir.
ŞifreliX = x xor şifre
OrjinalX = ŞifreliX xor Şifre

Bu operatörler aynı zamanda karşılaştırma işlemlerinde de birden fazla şartı kontrol etmek içinde kullanılır. VB'de kullanılan karşılaştırma operatörleri ise şunlardır.

= Eşit If x=5 Then Print "5" Else "5 Değil"
<> Eşit Değil If x=5 Then Print "5 Değil" Else "5"
< Küçük If x<5 Then Print "5 den küçük" Else "5 den büyük"
> Büyük If x>5 Then Print "5 den büyük" Else "5 den küçük"
<= Küçük veya Eşit If x<=5 Then Print "5 den küçük veya eşit" Else "5 den büyük"
>= Büyük veya Eşit If x>=5 Then Print "5 den büyük veya eşit" Else "5 den küçük"


bunların haricinde VB'deki Like operatörü ile strigler üzerinde daha detaylı karşılaştırma işlemleri yapılmaktadır. Like operatöründe tıpkı dosya isimlerinde olduğu gibi joker karakterler vererek karşılaştırma yapmak mümkündür.
Like operatöründe kullanılabilecek joker karakterler şunlardır.

? Her hangi bir karakter
# Her hangi bir rakam
* Bir veya daha fazla karakter
[aralık] Verilen aralıkta bir karakter
[!aralık] Verilen aralık dışında bir karakter


If adres Like "*İstanbul" Then
ifadesi ile adres değişkeninin sonunda İstanbul bulunup bulunmadığını

If adres Like "*İstanbul*" Then
ifadesi ile adres değişkninin herhangi bir yerinde İstanbul bulunp bulunmadığını

If adres Like "İstanbul*" Then
ifadesi ile adres değişkeninin başında İstanbul bulunup bulunmadığı kontrol edilebilir.

If x Like "?abc" Then
ifadesi ile x değişkeninin ilk harfinin bir karakter ancak diğer üç karakterin abc olup olmadığı

If x Like "#abc" Then
ifadesi ile x değişkeninin ilk harfinin bir rakam ancak diğer üç karakterin abc olup olmadığı

If x Like "[a-f]abc" Then
ifadesi ile x değişkeninin ilk harfinin a ile f arasında herhangi bir karakter ve diğer üç karakterin abc olup olmadığı

If x Like "[!a-f]abc" Then
ifadesi ile x değişkeninin ilk harfinin a ile f arasında olmayan herhangi bir karakter ve diğer üç karakterin abc olup olmadığı kontrol edilir.

İşlem Önceliği




Aritmetik işlemler söz konusu olduğunda işlem önceliği sonucu etkileyen önemli bir etkendir. Örneğin 5+7*2-3/9^3*5 işleminin sonucu kaç olduğuişlemdeki operatörlerin önceliği ile ilgilidir. Bu tip işlemlerde parantezler kullanmak her zaman önceliği belirleyici bir faktördür. Ancak parantezlerin bulunmadığı durumlarda aşağıdaki işlem önceliklerine göre işlem yapılır.

Aritmetik Karşılaştırma Lojik
^
Negatiflik işareti (-)
* , /
\
Mod
+ , -
&
=
<>
<
>
<=
>=
Like
Is
Not
And
Or
XOr
Eqv
Imp



İşlemde en büyük öncelik aritmetik işlemlerde, sonra karşılaştırma işlemlerinde ve en son olarak ta lojik işlemlerdedir. Aynı gruptaki işlemlerin önceliği ise tabloda yukarıdan aşağıya doğru verilmiştir. Yani aritmetik işlemlerde en yüksek öncelik ^ işlemindedir.

Print 5 + -6
İşleminde öncelik negatiflik işareti olan - işaretinde olduğu için önce 6 sayısının negatifi alınır ve 5 sayısı ile toplanır.

Print 5 + 6 * 4 + 3
İşleminde * operatörünün önceliği + işaretinden büyük olduğu için önce 6 * 4 işlemi yapılacak sonrada sonuçlar toplanacaktır.

Print 5 + 7 * 2 - 3 / 9^3 * 5
İşleminde ise en yüksek önceliğe ^ operatörü sahip olduğu için önce 9 ^ 3=729 işlemi yapılacaktır.

Print 5 +7 * 2 - 3 / 729 * 5
İşleminde / ve * işlemleri aynı önceliğe sahiptir. Bu durumda işlem soldan sağa doğru yapılır. Yani önce bölme daha sonra çarpma işlemi yapılır.

Print 5 * 7 Or 8 + 2
İşleminde aritmetik işlemlerin önceliği daha büyük olduğu için önce bu işlemler yapılacak son olarakta Or işlemi uygulanacaktır. Yani ( 5 * 7 ) Or ( 8 + 2) işlemi yapılır.