Makaleden ögreneceklerimiz:
1-) For döngüsünü nasil kullanacagiz,
2-) While döngüsünü nasil kullanacagiz,
3-) do – while döngüsünü nasil kullanacagiz,
4-) do – Until döngüsünü nasil kullanacagiz,
5-) do – Loop while döngüsünü nasil kullanacagiz,
6-) do – Loop Until döngüsünü nasil kullanacagiz.
For döngüsü:
For komutu programlama dillerinde verilen bir emri belirlenen bir miktar kadar yapmak için kullanilir.
Örnegin, For komutu yardimi ile 1’den 10’a kadar sayilari ekrana yazdiralim:
Dim sayi As Integer
For sayi = 1 To 10
TextBox1.AppendText(CStr(sayi) & NewLine)
Next
End Sub
Not1: NewLine komutu için (Imports Microsoft.VisualBasic.ControlChars)import etmemiz gerekir.
Not2: AppendText metodu TextBox’a bir sayi eklememizi sagliyor.
Integer olarak tanimladigimiz ‘sayi’ degiskenimiz 1’den baslayip teker teker 10’a kadar deger aliyor.
Peki biz bunu teker teker degil de ikiser ikiser artsin istiyorsak?
Bu durumda yapmamiz gereken sey çok basit: ‘Step’ komutu imdadimiza yetisiyor;
For sayi = 1 To 10 Step 2
TextBox1.AppendText(CStr(sayi) & NewLine)
Next
For sayi = 1 To 10 Step 2 yerine For sayi = 10 To 1 Step -1 de diyebilirdik. O zaman programimizin çiktisi su sekilde olur:
10
9
8
7
6
5
4
3
2
1
Yani ilk yaptigi sayma isleminin tam tersi.
While döngüsü:
Vb.net’te While döngüsü For döngülerinden daha esnektir. Fakat bu esneklik beraberinde risk de getirmekte. Gördük ki eger tekrarin kaç kere yapilmasi gerektigini önceden biliyorsak For komutunu rahatlikla kullanabiliriz. Peki ya ne kadar tekrar olacagini önceden bilemiyorsak?
Dim sayi As Integer = 0
While sayi < 10
sayi += 1
TextBox1.AppendText(CStr(sayi) & NewLine)
End While
Programdan istenen sey su; ‘sayi’ degiskeni eger 10’dan küçük ise döngü içerisinde verilen emirleri yerine getir. Eger ‘sayi’ 10 veya daha büyükse döngüden çikar.
Simdi eglenceli birseyler yapalim. Seviye: Amonra_ has much to be proud ofAmonra_ has much to be proud ofAmonra_ has much to be proud ofAmonra_ has much to be proud ofAmonra_ has much to be proud ofAmonra_ has much to be proud ofAmonra_ has much to be proud ofAmonra_ has much to be proud of
Satranç oyununu bulan bilge kisinin öyküsü
Satranç oyununu bulan bilge kisinin öyküsü Satranç oyununu bulan bilge kisinin öyküsünü biliyor musunuz ?
Ödül olarak kraldan satranç tahtasinin ilk karesinin üzerine bir, ikinci karenin üzerine iki,
üçüncü karenin üzerine dört pirinç koymasini ve bu biçimde sayilari her seferinde ikiye katlayarak satranç tahtasinin tüm karelerini pirinçle doldurmasini istemis bu bilge.
Bizim kiral da meger pek kafasi calisan biri degilmis, önce bu istegi çok alçakgönüllü bulmus ve içinden bilge kisiye gülmüs ama son gülen iyi gülermis! Bir sayiyi on kez ikiye katlarsak o sayiyi 1024 ile çarpmis oluruz; bunu yirmi kez yaparsak bir milyonun üstünde bir sayiyla çarpmis oluruz ve bu böylece sürüp gider.
Hadi simdi bunu While yardimi ile hesaplayalim:
Dim kare, pirinc, toplam As Double
kare = 1
pirinc = 1
toplam = 1
TextBox1.AppendText(CStr(kare) & ". karede " & pirinc & " pirinç var" & NewLine)
While kare < 32
kare = kare + 1
pirinc = pirinc * 2
TextBox1.AppendText(CStr(kare) & ". karede " & pirinc & " pirinç var" & NewLine)
toplam = toplam + pirinc
End While
TextBox1.AppendText("toplam: " & CStr(toplam))
Ben 64 yerine 10 aldim ki programin çiktisi abartili olmasin. Iste sonuç:
1. karede 1 pirinç var
2. karede 2 pirinç var
3. karede 4 pirinç var
4. karede 8 pirinç var
5. karede 16 pirinç var
6. karede 32 pirinç var
7. karede 64 pirinç var
8. karede 128 pirinç var
9. karede 256 pirinç var
10. karede 512 pirinç var
toplam: 1023
J
While döngüsünü özetleyecek olursak:
1-) Eger aranan sart mevcutsa döngü devam eder
2-) Eger aranan sart yok ise döngü End While komutu ile son bulur.
While döngüsü içerisinde kullanilan karsilastirma operatörleri için http://www.yazilimmutfagi.com/MakaleOku.aspx?Makale=Visual+Basic+If+Else+YapIsI&MakaleKey=7f10a8e9-a954-48e7-8dfb-d372fd5c9dcb makalemize bakabilirsiniz.
Buraya kadar Visual Basic.NET’te döngülerin nasil yapildigini ve çalisma mantigini anlatmaya çalistim.
Simdi biraz ayrintiya girip, degisik durumlar için kullanilan diger döngülere bakalim. Mantik ayni oldugu icin kisa örneklerle yetinecegim.
Amaç, sayilari 1’den 10’a kadar TextBox’a yazdirmak olsun:
Do – While ile:
Dim sayi As Integer
Do While sayi < 10
sayi = sayi + 1
TextBox1.AppendText(CStr(sayi) & ", ")
Loop
Do – Until ile:
Do Until sayi >= 10
sayi = sayi + 1
TextBox1.AppendText(CStr(sayi) & ", ")
Loop
Do – Loop While ile:
Do
sayi = sayi + 1
TextBox1.AppendText(CStr(sayi) & ", ")
Loop While sayi < 10
Do – Loop Until ile:
Do
sayi = sayi + 1
TextBox1.AppendText(CStr(sayi) & ", ")
Loop Until sayi >= 10
Programlarin çiktisi: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
Not: Karsilastirma operatörlerine (<, >, =, <=, >=,<>) dikkat ediniz!
asp.net değil bu yalnız vb.net asp.net ile farklıdır.
1 <script language=”VB” runat=”server”>
2 dim i as integer
3 sub Page_Load(sender as object, e as eventargs)
4 for i = 7 to 1 step -1
5 response.write(“<font size=” & i & “>” & “Türkiye” &
“</font>” & “<br>”)
6 next
7 end sub
8 </script>
1 ile 10 arasynraki sayylary for ile nasyl toplatyryz asp.net vb dilinde yardymcy olursanyz sevinirim
step komutu lzm msn eren_66_66@hot… gbilnler gönderirsee svnrm.. :S
bu algoritmalari ortadan kaldirin…..
Do while:
Dim i As Integer = 1
Dim kareler As Integer
Do While i <= 10
kareler = i * i
i = i + 1
TextBox1.AppendText((kareler) & vbCrLf)
Loop
Do until:
Dim i As Integer = 1
Dim kareler As Integer
Do Until i > 10
kareler = i * i
i = i + 1
TextBox1.AppendText((kareler) & vbCrLf)
&n
C# da do while ile su sekilde yapabilirsin.
string kareler = "";
int i = 1;
do
{
int kare = i * i;
kareler += String.Format("{0} in karesi = {1}\r\n", i, kare);
i++;
}
while (i <= 10);
MessageBox.Show(kareler);
artik vb sinide sen yazarsin
arkadaslen sunlari istiyorum.
1 den 10 a kadar olan sayilarin karelerini alma
while
do while ve do until ile yaparmisiniz ????
vbCrLf ile dene bir de.
NewLine yazinca Altinda Mavi Çikiyor ?
Csharp kodu su sekilde, vb halinide sen yazarsin
int sayi1 = 5;
int sayi2 = 10;
do
{
Console.WriteLine("{0} Sayisinin; Karesi = {1} ,Küpü = {2}", sayi1,sayi1 * sayi1, sayi1 * sayi1 * sayi1);
sayi1++;
} while (sayi1 <= sayi2);
acil ya yarinna yetismesi gerekiyo
2 sayi arasindaki sayilarin karesini ve küpünü alan do while döngüsü nasil ???
çok gerçekten kiyak olmus tesekkürler