Avatar billede henrikgn Nybegynder
08. september 2003 - 15:52 Der er 7 kommentarer og
1 løsning

For-løkke

En lille nem en...Jeg har følgende:

dim counter, number As integer
linie1.Text = ""
for counter = 0 to (counter < number) step 1
  message1.Text += "linie tilføjet<br>"
next

number er hentet fra en form og linie1 er en asp:label...

meeen det virker ikke for mig...? warum?
Avatar billede nmh Nybegynder
08. september 2003 - 15:58 #1
Din syntaks er speciel (med mindre VB er blevet voldsomt ændre  i VB.net, hvad jeg ikke tror. Dette burde være korrekt syntaks:
number=Cint(number)
for counter= 0 to number
  message1.txt=message1.text & "linie tilføjet<br>"
next
Avatar billede henrikgn Nybegynder
08. september 2003 - 16:23 #2
Næh, VB6 er ret meget magen til VB.NET med en del undtagelser naturligvis...

Min syntax er lidt mærkelig fordi det egentlig stammer fra noget C# jeg er ved at lave om til VB.NET.

Men det virker i hvert fald nu. Tak for det!
Avatar billede nmh Nybegynder
08. september 2003 - 16:26 #3
ja, det anede mig det var noget C#-noget.
takker for point
Avatar billede odegaard Nybegynder
09. september 2003 - 00:33 #4
nmh: VB ER ændret en del siden VB6. Fx. er det nu OOP, i modsætning til "oldtidens" VB. += er også en fiks og en helt gyldig VB.NET operator.
Det virker nu noget mere underligt at du har både den afhængige variabelæ i "from" og "to" udtrykket i din forløkke. Desuden under jeg mig lidt over udtrykket (counter < number). Skulle det ikke have været (counter-number) ?
Avatar billede henrikgn Nybegynder
09. september 2003 - 10:36 #5
odegaard: Ja, du har ret - .net udgaven af VB er noget smartere på mange områder. Jeg kunne en del VB6 - og havde derfor forholdsvis let ved at sætte mig ind i vb.net.

Jeg ved ikke om du kan C# (hvilket jeg kun ved meget lidt om selv), men følgende virker i C#:

number = Convert.ToInt32(Request.Form["nummer"]);
linie1.Text = "";
for (counter = 0; counter<number; counter++)
{
  linie1.Text += "linie tilføjet<br>"
}

Her er syntaksen altså counter<number - og det var det jeg prøvede at oversætte til vb.net.
Avatar billede odegaard Nybegynder
10. september 2003 - 00:01 #6
Så skal den være:
for counter = 0 to (number-1)
  linie1.Text += "linie tilføjet<br>"
Next

I C# er 2. parameter i for-parametrene, en betingelse der skal være opfyldt hvis løkken skal køre videre. Husk "number minus 1", da løkken ikke skal være inkl. number-værdien.

Til en anden gang: Når du siger "Det virker ikke for mig", så ville en beskrivelse af _hvad_ der ikke virker og _hvilken_ fejl du får, hjælpe meget på vores evne til at svare korrekt.
Avatar billede henrikgn Nybegynder
10. september 2003 - 11:40 #7
Når du siger: "Så skal den være:..." osv. lyder det som om at det er den måde det SKAL være på - men som sagt så virker dette altså også fortrinligt: (i C#)

for (counter = 0; counter<number; counter++)
{
  kode...
}

Så er det emne vist også uddebatteret...
Avatar billede odegaard Nybegynder
10. september 2003 - 11:50 #8
ja ja, men nu er dette nu engang Visual Basic.NET kategorien. Grunden til at jeg siger "skal være", er at den forrige oversættelse af koden til VB ikke er korrekt, da den tager én for meget med.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester