Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Hjälp att förklara loopar

Postades av 2004-10-23 18:30:05 - Christina Antonsson, i forum visual studio.NET IDE, Tråden har 8 Kommentarer och lästs av 876 personer

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.

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 tacksam


Svara

Sv: Hjälp att förklara loopar

Postades av 2004-10-23 18:37:09 - Patrik Dahlén

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

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.


Svara

Sv: Hjälp att förklara loopar

Postades av 2004-10-23 19:36:17 - Christina Antonsson

anledningen att jag inte förstod var att man gjort ett ex:
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.


Svara

Sv: Hjälp att förklara loopar

Postades av 2004-10-23 20:14:00 - Per Persson

Själva looparna är i princip likadana:

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.


Svara

Sv: Hjälp att förklara loopar

Postades av 2004-10-23 21:13:38 - Patrik Dahlén

Eller
<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.


Svara

Sv: Hjälp att förklara loopar

Postades av 2004-10-24 10:13:04 - Patrik Löwendahl

Eller:

<code>
TextBox1.Text &= dblPlanbok
</code>

om man vill skriva den korta varianten ;)


Svara

Sv: Hjälp att förklara loopar

Postades av 2004-10-25 09:03:24 - Christina Antonsson

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???


Svara

Sv: Hjälp att förklara loopar

Postades av 2004-10-26 19:40:41 - Fredrik Rodin

Do-loopar kan man generellt säga gör något tills ett värde är uppfyllt.

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
Fredrik


Svara

Sv:Hjälp att förklara loopar

Postades av 2004-10-26 22:09:54 - Christina Antonsson

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,

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.


Svara

Nyligen

  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo
  • 14:25 Tips på verktyg för att skapa QR-k
  • 14:23 Tips på verktyg för att skapa QR-k
  • 20:52 Fungerer innskuddsbonuser egentlig

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 164
27 952
271 704
1 421
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies