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 / Artiklar / Titel på artikeln

Lathund - Slingor och operatorer

Postad 2002-08-31 av Mats Hindhede i sektionen ASP.NET, C#, Okategoriserat med 0 Kommentarer | Läst av: 6001, Betyg: 78%

Förord

I detta avsnitt behandlas några tekniker som används i praktiskt taget alla program: slingor och operatorer.
Innehåll
  » Vanliga slingor och operatorer
  » Slingor av typen For ... Next
  » Slingor av typen For Each
  » Slingor av typen Do ... While
  » Slingor av typen Do ... Until
  » Slingor av typen While ... Wend
  » Beslutsstrukturer av typen If ... Else
  » Beslutsstrukturer av typen Select Case
  » With
Relaterade artiklar
  » Lathund - API-anrop
  » Lathund - Arrayer, egna datatyper och numreringar
  » Lathund - Databaser
  » Lathund - Felhantering
  » Lathund - Grundläggande syntax
  » Lathund - Inbyggda funktioner
  » Lathund - Klassmoduler
  » Lathund - Kortkommandon
  » Lathund - Namngivning och deklarationer
  » Lathund - Några extra tips
  » Lathund - Spara, öppna och skriva ut filer
  » Lathund - Variablers och konstanters räckvidd


Vanliga slingor och operatorer





















































Operator
Användning
Exempel
Resultat
+Addition14 + 519
-Subtraktion14 - 59
*Multiplikation14 * 570
/Division14 / 52,8
^Exponentiering14 ^ 5537824
\Heltalsdivision14 \ 52
ModModulus14 Mod 54
& eller +Konkatenering"Hej " & "då""Hej då"

























Operator
Användning
>Större än
<Mindre än
>=Större än eller lika med
<=Mindre än eller lika med
<>Inte lika med





























Operator
Användning
Exempel
Resultat
AndBåda sidor ska vara sanna(2 < 3) And (4 < 5)True
OrMinst en av sidorna ska vara sann(2 < 3) Or (6 > 7)True
XorEndast en av sidorna ska vara sann(2 < 3) Xor (4 < 7)False
NotGör falskt till sant och vice versaNot (4 = 5)True



Slingor av typen For ... Next



For intCount = Första Talet To Sista Talet Step Steglängd
Kod
Next intCount


Exit For avbryter slingan i förtid. Om man utelämnar Step Steglängd blir steglängden 1. Om Steglängd är ett negativt heltal stegar man baklänges. Då måste Första Talet vara större än Sista Talet.

Även om det är mera svårtolkat är det tillåtet att bara skriva


For intCount = Första Talet To Sista Talet Step Steglängd
Kod
Next



Slingor av typen For Each

Denna typ av slinga kan man använda för att nå alla objekt i en samling (collection på engelska). I Visual Basic finns det många samlingar, t ex samlingen Forms, som består av alla laddade formulär.


For Each Objektvariabel In Samling
Kod
Next Objektvariabel


Även om det är mera svårtolkat är det tillåtet att bara skriva


For Each Objektvariabel In Samling
Kod
Next


Exempel:


Private Sub cmdCloseAll_Click()
Dim frm As Form
For Each frm In Forms
Unload frm
Next frm
End Sub


Exit For avbryter slingan i förtid.


Slingor av typen Do ... While



Do While Villkor
Kod
Loop


Exit Do avbryter slingan i förtid.

Man kan även skriva


Do
Kod
Loop While Villkor



Slingor av typen Do ... Until



Do Until Villkor
Kod
Loop


Exit Do avbryter slingan i förtid.

Man kan även skriva


Do
Kod
Loop Until Villkor





Slingor av typen While ... Wend



While Villkor
Kod
Wend


Slingor av typen While ... Wend kan inte avbrytas i förtid.



VARNING!
Använd aldrig en Variant eller en odeklarerad variabel som räknare i en slinga. En For-slinga kan ta dubbelt så lång tid om räknaren är en Variant istället för en Long eller Integer! Dessutom ska man undvika onödiga proceduranrop, beräkningar och konkateneringar i slingor. Annars kan ditt program förlora mycket prestanda. Istället för att skriva


Do While intA < 100
intB = 3 * intC
intA = intA + intB
Loop


bör man naturligtvis skriva


intB = 3 * intC
Do While intA < 100
intA = intA + intB
Loop


så att inte beräkningen intB = 3 * intC utförs varje varv i slingan.

Mycket stor varning för konkateneringar i slingor! Konkateneringar är det segaste som finns i Visual Basic. Att stoppa in konkateneringar i en lång slinga kan vara ett prestandamässigt självmord! Undvik till varje pris! Den praktiska och extremt snabba funktionen Join erbjuder ofta en betydligt bättre lösning än vanlig konkatenering med &-tecknet. Systerfunktionen Split är också mycket användbar.




Beslutsstrukturer av typen If ... Else



If Villkor Then
Kod om villkor är sant
Else
Kod om villkor är falskt
End If


If-satser kan vara utan Else och man kan även kapsla (en del säger nästla) dem inuti varandra:


If Villkor A Then
Kod om villkor A är sant
Else
If Villkor B Then
Kod om villkor B är sant
End If
End If


Med hjälp av ordet ElseIf kan detta skrivas kortare:


If Villkor A Then
Kod om villkor A är sant
ElseIf Villkor B Then
Kod om villkor B är sant
End If


Den senare varianten brukar dock vara mera svårtolkad.




Beslutsstrukturer av typen Select Case



Select Case Variabeln
Case Tänkbart värde, Tänkbart värde, Tänkbart värde ...
Kod om variabeln har något av dessa värden
Case Tänkbart värde, Tänkbart värde, Tänkbart värde ...
Kod om variabeln har något av dessa värden
Case Else
Kod om variabeln har något annat värde
End Select


Tänkbart värde kan t ex vara något av dessa alternativ:


"Skåne"
Is <> "Stockholm"
5000
Is > 1000
Is >= 5000
1000 To 5000


Observera att det aldrig är någon annan kod som körs än den kod som hör till den första matchande Case-satsen. På denna punkt skiljer sig uttrycket Select Case från motsvarande uttryck i andra programmeringsspråk. Uttrycket switch i Java är t ex en aning smartare.

Om man skriver samma värde i flera Case-satser räknas ändå bara den första matchande Case-satsen och det uppstår inte något fel.

Det är inget krav att variabelns värde ska matchas av någon Case-sats och det är inget krav att ta med en Case Else-sats!

Prestandatips: Placera det mest sannolika värdet på variabeln i den första Case-satsen.




With

Uttrycket With gör koden kortare att skriva och förbättrar programmets prestanda om man behöver ändra många egenskaper på en gång för ett och samma objekt.

Istället för att skriva


frmMyForm.ScaleTop = 0
frmMyForm.ScaleLeft = 0
frmMyForm.ScaleWidth = 2000
frmMyForm.ScaleHeight = 2000


bör man skriva


With frmMyForm
.ScaleTop = 0
.ScaleLeft = 0
.ScaleWidth = 2000
.ScaleHeight = 2000
End With

Upp

0 Kommentarer

Skriv en kommentar på artikeln

Ditt betyg på artikeln



Kommentar:





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 154
27 952
271 704
460
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