webForumDet fria alternativet

Att avsluta en IF-sats?

ASP

10 svar · 737 visningar · startad av Eclipse

Medlem sedan juli 20003 825 inlägg
Frågan#1

Om jag har en IF sats, hur avslutar jag den!?

IF A = B THEN
-- return ???
ELSE
-- response.write "hej hopp!!"
END IF

Medlem sedan nov. 20014 054 inlägg
#2

Eclipse skrev:

Om jag har en IF sats, hur avslutar jag den!?

IF A = B THEN
-- return ???
ELSE
-- response.write "hej hopp!!"
END IF

Du kan avsluta den på det sättet som du skrivit om du vill.. dvs:

If A = B Then
   ' Gör något om A var lika med B
Else
   ' Om de inte var lika med varandra, gör detta. 
End if

Om inget speciellt skall hända om A ej är lika med B.

If A = B Then
   ' Gör något om A var lika med B
End if

' om det inte var lika med varandra, men vi vill inte göra något speciellt då, och gå vidare i händelseförloppet av koden.
Medlem sedan juli 20003 825 inlägg
#3

Jag vet. Men nej.

Jag kan inte skriva "IF A <> B THEN ..." för då blir en massa andra kriterier uppfyllda. Jag kan inte skriva CASE, för det är inte relevant i sammanhanget.

Jag vill göra det jag skriver ovan, vilket är att hoppa ur frågan om A = B.

Medlem sedan dec. 20014 239 inlägg
#4

response.end ??

Medlem sedan nov. 20014 054 inlägg
#5

Eclipse skrev:

Jag vet. Men nej.

Jag kan inte skriva "IF A <> B THEN ..." för då blir en massa andra kriterier uppfyllda. Jag kan inte skriva CASE, för det är inte relevant i sammanhanget.

Jag vill göra det jag skriver ovan, vilket är att hoppa ur frågan om A = B.

Vill du hoppa ur IF-satsen om A = B?

Nu förstår jag inte..

Om A = B då går den in och gör det mellan if och else, annars gör den det mellan else-end if. Thats it, sedan kör den koden efter if-satsen.. Du får ge mer kod för att visa hur hela sammanhanget är.
Ex.

<%
if A = B then
  Response.Write "A är lika med B"
else
  Response.Write "A är ej lika med B"
end if

Response.Write "Detta syns i alla fall"
%>

Är if-satsen i en funktion och du vill returnera något nr a = b, då är det en annan sak. Eller att du vill avbryta en for-loop osv.

Medlem sedan juli 20003 825 inlägg
#6

OK, nytt försök! :-)

myVal = "google"

IF myVal = "google" THEN
-- Här händer inget
ELSE
-- response.write "här skriver vi sökord + google"
END IF
IF myVal = "altavista" THEN
-- Här händer inget
ELSE
-- response.write "här skriver vi sökord + altavista"
END IF
IF myVal = "msn" THEN
-- Här händer inget
ELSE
-- response.write "här skriver vi sökord + msn"
END IF

I detta scenariot vill jag att det ska stå saker för altavista och för msn, inte för google för det sökordet vet jag redan.

I detta fallet är myVal = "google". I andra frågor kan myVal vara "msn", "altavista", eller tom eller fylld med annat namn. Då ska alla tre sökmotorer + sökord fyllas i.

Jag hoppas detta är tydligare! :-)

Nej, i detta läget är det inte aktuellt att göra som en funktion. Det blir inte enklare av det. Jag vill bara hoppas ur IF-satsen, som jag skriver ovan. Dessutom, det är inte TRE sökmotorer, det är fler. Hur många vet jag inte idag.

Parentes. Det är ingen välbesökt sida så koden behöver inte göra anspråk på att vara snabb...

Medlem sedan dec. 20025 483 inlägg
#7

Då gör du precis som du gjort, d.v.s.:

if bool then
  ' do nothing
else
  ' do stuff
end if
Medlem sedan okt. 2007446 inlägg
#8

Varför skulle INTE en case sats funka här?

Men jag fattar fortfarande inte logiken
Om myVal är "google", "altavista" eller "msn" så skall inget hända?
är det inte lämpligare att det HÄNDER nånting när vilkor uppfylls?

Med en select Sats


Select Case myVal
  Case "google"
    ' Gör inget, eller ännu hellre gör nånting
  
   Case "altavista"
       ' Gör inget, eller ännu hellre gör nånting

    Case Else
     'Här tar vi hand om alla andra varianter av myVal
End Select
Medlem sedan juli 20003 825 inlägg
#9

Men jag fattar fortfarande inte logiken
Om myVal är "google", "altavista" eller "msn" så skall inget hända?
är det inte lämpligare att det HÄNDER nånting när vilkor uppfylls?

Jo, men om sökmotorn är google så vill jag inte skriva det en gång till.

Typ. Så att säga... Det är lite svårt att förklara saker tagna ur sitt sammanhang.

*******************************
Denna koden fungerar smärtfritt. Kanske inte världens snyggaste, men resultatet blir enastående! :- )

Tack för det!

IF myVal = "google" THEN
-- ' ## NOTHING
ELSE
-- response.write ....
END IF
Medlem sedan juni 20034 013 inlägg
#10

Att tala om för datorn vad den inte ska göra känns lite onödigt. Är det inte så här du menar?

if myVal <> "google" then
  response.write "sökord + google"
end if
if myVal <> "altavista" then
  response.write "sökord + altavista"
end if

Alltså, om det =inte= är Google, skriv sökord. Om det inte är altavista, skriv sökord osv...

Egentligen borde du ha en array som du loopar igenom, typ så här:

dim sokmotorer(3)
sokmotorer(0) = "google"
sokmotorer(1) = "altavista"
sokmotorer(2) = "msn"

for each sokmotor in sokmotorer
  if myVal <> sokmotor
    response.write "sokord +" & sokmotor
  end if
next
Medlem sedan juli 20003 825 inlägg
#11

Intressant!

Jag måste kolla, men du presenterar onekligen ett intressant uppslag att arbeta efter.

Idag är en ny dag och det ska inte fungera igår som idag, men dina varianter kan dock fortfarande vara aktuella.

398 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
260 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
263 ms — ändringar (db)