jag läser och läser, men förstår inte iallafall, ex om Kalle har 1000kr i plånboken och så hyr han en video som kostar 50kr. Jag ska då göra en for-loop som går 12varv. För varje varv ska det tas 50kr från Kalles plånbok. detta skall visas i en textruta. Det du bör göra är att kolla in vad en loop egentligen är, vad den innebär och vad den gör. Loopar är en grundläggande del i programmering. Om det är .NET du försöker lära dig, börja t.ex. med de tutorials som finns på gotdotnet.com anledningen att jag inte förstod var att man gjort ett ex: Själva looparna är i princip likadana: Eller Eller: tack för dessa goda förklaringar, nu börjar att förstå. Då funderarar jag om Do-While-loop, Do-Loop_While-Lopp, och lämna looparna i förväg hur dessa fungerar. eller de fungerar lika??? Do-loopar kan man generellt säga gör något tills ett värde är uppfyllt. Tack för förklaringen, jag har varit där och tittat, men eftersom jag inte är så hejare på vb.net så förstår jag inte riktigt att det finns likheter mellan olika programspråk. Men jag ska försöka bättra mig och se om jag lyckas lite bättre i fortsättningen, Hjälp att förklara loopar
Skulle jag räkna ut detta rent mattematiskt så får jag det till att Kalle har 400kr kvar efter 12 videohyrningar.(50*12=600)
men jag förstår inte hur man gör en sådan loop, kan någon vara snäll och förklar och kanske även visa hur jag ska gå tillväga, så skulle jag bli tacksamSv: Hjälp att förklara loopar
I ditt exempel, menar du att Kalle hyr en video för 50kr i månaden?
Först får man fråga sig, varför ska en loop användas? Om han t.ex. ska hyra videon och betala 12 månader på en gång så använder man ingen loop utan en vanlig matematisk beräkning.
<code>
cashMoney = 1000
vcrMonthlyRent = 50
rentPeriod = 12
cashMoney -= vcrMonthlyRent * rentPeriod
</code>
Om vi struntar i vad själva problemet är och sätter ihop en loop ändå så skulle det bli så här.
<code>
cashMoney = 1000
vcrMonthlyRent = 50
rentPeriod = 12
For i = 1 to rentPeriod
cashMoney -= vcrMonthlyRent
Next
</code>
Efter varje gång loopen körs läggs 1 på ända tills i är 13, vilket innebär att loopen har körts 12 gånger. Varje gång i loopen dras 50 kronor av från kontanterna i plånboken.Sv: Hjälp att förklara loopar
Dim i As Integer
'rensa textboxen
TextBox1.Text = ""
' Låt en loop börja med i=1 och fortsätta tills i = 5
For i = 1 To 5
TextBox1.Text = TextBox1.Text & i
Next
detta gjorde att jag trodde att man skulle skriva:
Dim dblPlanbok As String = 1000
Dim dblTal1 As String = 50
Dim i As Integer
'ger variablerna dess värde
For i = 1 To 12
TextBox1.Text = dblPlanbok - dblTal1
Next
men detta var inte rätt, och då förstod jag inte hur man skulle tänka, när de visar exemplen på ett sätt och övningarna ska vara på ett annat sätt.Sv: Hjälp att förklara loopar
For i = 1 To Antal
...
Next
där Antal är ett tal (5 resp. 12).
"Loopkropparna", dvs det som utförs i varje varv, skiljer sig däremot åt. Den första,
<code>TextBox1.Text = TextBox1.Text & i</code>
tar texten som står i textrutan TextBox1, lägger till talet i på slutet av texten och sätter in den nya texten i rutan. Efter 3:e varvet står det därför '123' i rutan.
Den andra loopkroppen,
<code>TextBox1.Text = dblPlanbok - dblTal1</code>
tar värdet i dblPlanbok, subtraherar värdet i dblTal1 och skriver in det i textrutan. Eftersom varken dblPlanbok eller dblTal1 ändrar värde mellan varven, kommer det alltid att bli subtraktionen 1000 - 50 som utförs, och värdet som skrivs in blir alltså 950.
Om du ändrar koden till
<code>
Dim dblPlanbok As String = 1000
Dim dblTal1 As String = 50
Dim i As Integer
'ger variablerna dess värde
For i = 1 To 12
dblPlanbok = dblPlanbok - dblTal1
TextBox1.Text = dblPlanbok
Next
</code>
så dras dblTal1 bort från dblPlanbok, och sedan skrivs det nya värdet på dblPlanbok in i textfältet.
Sv: Hjälp att förklara loopar
<code>
TextBox1.Text = TextBox1.Text & dblPlanbok
</code>
så att alla värdena skrivs in. Annars kommer endast det slutliga värdet att synas i textboxen.Sv: Hjälp att förklara loopar
<code>
TextBox1.Text &= dblPlanbok
</code>
om man vill skriva den korta varianten ;)Sv: Hjälp att förklara loopar
Sv: Hjälp att förklara loopar
Jag ska försöka förklara genom några enkla exempel.
Do-while:
Dim bStoppaLoop As Boolean = False
Dim iCount As Integer = 0
Do While bStoppaLoop = False
If iCount < 10 Then
iCount += 1
Else
bStoppaLoop = True
End If
Loop
Denna loop slutar alltså när iCount blir 10, då sätts bStoppaLoop till True och eftersom 'Do While bStoppaLoop = False' inte längre är sant så hoppar den ur.
Man kan vända på denna loop enligt följande (ger EXAKT samma resultat):
Dim bStoppaLoop As Boolean = False
Dim iCount As Integer = 0
Do While Not bStoppaLoop = True
If iCount < 10 Then
iCount += 1
Else
bStoppaLoop = True
End If
Loop
Jag har alltså vänt på logiken när den ska hoppa ur och sagt att om inte bStoppaLoop är sant så ska den fortsätta medans det första exemplet sa om bStoppaLoop är falskt så ska den fortsätta.
Hoppas du hänger med;-)
Val av lopp beror mycket på vad man vill få ut av den. Jag använder bara For-loopar när jag programerar, men det är olika mellan olika programerare.
For-loopar används oftast i samband med index-baserade klasser. T.ex:
For i As Integer = 0 To ClassUsers.Count - 1
Response.Write(ClassUsers(i).Name & "<br>")
Next
Om jag skulle göra en Do-loop av ovan så skulle den se ut såhär:
Dim iCount As Integer = 0
Do While iCount <= ClassUsers.Count - 1
Response.Write(ClassUsers(iCount).Name & "<br>")
iCount += 1
Loop
Som du ser skiljer de sig åt en aning, men de utför samma operation. Hurvida de skiljer i prestanda kan jag inte svara på.
För att hoppa ur en loop även om ursprungsvillkoret inte är uppfyllt skriver man bara Exit For för en For-loop och Exit Do för en Do-loop.
Alltså:
For i As Integer = 0 To ClassUsers.Count - 1
If ClassUsers(i).Name = "Nisse" Then
Exit For
End If
Response.Write(ClassUsers(i).Name & "<br>")
Next
eller
Dim iCount As Integer = 0
Do While iCount <= ClassUsers.Count - 1
If ClassUsers(i).Name = "Nisse" Then
Exit Do
End If
Response.Write(ClassUsers(iCount).Name & "<br>")
iCount += 1
Loop
Hoppas detta gav lite klarhet nu.
På IDG:s Webstudio hittade jag två artiklar om loopar, men de är för klassisk ASP (föregångaren till ASP.NET). Dock ger de lite grunder i loophantering:
Do-loopar:
http://www.idg.se/webstudio/pub/article.asp?id=83
For-loopar:
http://www.idg.se/webstudio/pub/article.asp?id=84
MVH
FredrikSv:Hjälp att förklara loopar
Men Ni som är här är ju helt fantastiska på att hjälpa och förklara och det får mig att inte ge upp att lära mig vb.net.
Så Tack än en gång till alla.