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


Fundering kring And operatorn ?

Postades av 2004-10-29 17:34:13 - Sven Åke Persson, i forum visual basic - allmänt, Tråden har 18 Kommentarer och lästs av 903 personer

Förstår inte var för folk skriver exempel

If x = 10 And y = 21 And z = 56 Then ........

Om nu inte x = 10 dvs False finns det väl ingen anledning att kolla dom andra !?

Eller ;-)

Enl min uppfattning skall det skrivas
<code>
If x = 10 Then
If y = 21 Then
If z = 56 Then gör något
End If
End If
</code>


Svara

Sv: Fundering kring And operatorn ?

Postades av 2004-10-29 17:59:56 - Niklas Jansson

Skälet till att man vill skriva det på en rad är ju att man vill förkorta koden och göra den mer lättläst. Anledningen till att det kan finnas skäl till att dela upp det på flera olika rader är att VB till skillnad från de flesta språk saknar short-circuiting (alltså korslutning), och att man då eventuellt kan få prestandavinster.

Skriver man motsvarande sak i C/C++:

if (x==10 && y==21 && z==56)
{
    ...
}

så kollar den bara så långt den behöver.
Om man tänker sig en funktion som ser ut så här:
<code>
Function f (x As Double) As Double
Static LastX As Double
f=LastX
LastX=x
End Function
</code>
Så kan man ju göra något i stil med

<code>
If f(3)=4 And f(5)=3 Then
...
</code>
Då är ju inte det samma sak som
<code>
If f(3)=4 Then
If f(5)=3 Then
...
</code>
Eftersom VB har synen att den måste kolla alla uttryck, oavsett om de tidigare villkoren avgör uttrycket eller inte. Så är det inte i t.ex. C++, vilket är mycket praktiskt, t.ex. när man använder pekare eller någon typ av smart konstruerade klasser.
Alltså kan man göra något i stil med:
Objekt *objekt;

if(object && objekt->ready())

Vilket gör att objekt inte finns så kommer man inte använda objekt->ready(), och koden funkar jättebra utan att krångla med flera rader.


Svara

Sv: Fundering kring And operatorn ?

Postades av 2004-10-29 18:04:16 - Johan Djupmarker

I VB.NET har man tänkt på detta, då skriver du såhär istället:

If x = 10 AndAlso y = 21 AndAlos z = 56 Then

Med detta vill jag visa att det finns förbättringar i VB.NET som kanske t.o.m. Sven kan ta till sig ;)

/Johan


Svara

Sv: Fundering kring And operatorn ?

Postades av 2004-10-29 18:25:09 - Sven Åke Persson

>AndAlos vad är det ?

Kunde inte låta bli Flåt :-)

Bra Niklas och Johan , trodde jag skulle provocera fram några andra sk proffs ;-)


Svara

Sv: Fundering kring And operatorn ?

Postades av 2004-10-29 19:07:20 - Anton Jinsen

Förstår inte varför folk skriver så här:
> Förstår inte var för folk skriver exempel


Svara

Sv: Fundering kring And operatorn ?

Postades av 2004-10-29 19:45:44 - Roland Ringhede

Om man skriver så här

If x = 10 Then
If y = 21 Then
If z = 56 Then gör något
End If
End If

så kan syftet vara att man vill göra något i de fall x=10 oavset vad y eller z

If x = 10 Then

'kod som skall utföras i de fall som x = 10 oavsett y eller z

If y = 21 Then
If z = 56 Then gör något
End If
End If


Om man skriver

If x = 10 And y = 21 And z = 56 Then ........

så är nog syftet att endast i detta fall då alla tre variablerna uppfyller kriteriet så skall något utföras.

Om man lärt sig JSP så inser man nog skillnaden.



(JSP förkortning av "Jackson Structured Programming" för de som inte känner till begreppet. En av grunderna i strukturerad programmering)

http://encyclopedia.thefreedictionary.com/Jackson%20Structured%20Programming









Svara

Sv: Fundering kring And operatorn ?

Postades av 2004-10-29 19:50:58 - Sven Åke Persson

>så kan syftet vara att man vill göra något i de fall x=10 oavset vad y eller z

Måste vara kvalificerat logik "bull"


Svara

Sv: Fundering kring And operatorn ?

Postades av 2004-10-29 20:43:00 - Niklas Jansson

Njaee... det är väl inte så konstigt?

<code>
If FileFound Then
lblFileDesc = FileName
If FileExt="bmp" Then
picDesc.Picture = FullFileName
End If
End If
</code>

Men det var ju inte det diskussionen rörde. Själv kör jag alltid med And om det inte är grymt tunga operationer man vill låta bli att utföra (och det sker aldrig i en sån kontroll).


Svara

Sv: Fundering kring And operatorn ?

Postades av 2004-10-29 23:09:29 - Roland Ringhede

Rita up ett JSP träd med selectionen så ser man mera tydligt vad som bör väljas. Optimeringar kan lätt bli tokiga speciellt då kod oftast skall ärvas av andra programmerare då man inte stannar hela yrkeslivet på samma tjänst.


Svara

Sv: Fundering kring And operatorn ?

Postades av 2004-10-29 23:13:15 - Per Persson

<b>JSP förkortning av "Jackson Structured Programming" för de som inte känner till begreppet. En av grunderna i strukturerad programmering</b>

Just precis... När en kompis hade börjat jobba och jag undrade vad han höll på med, frågade han om jag kände till JSP. Det enda JSP jag kände till då var just Jackson Structured Programming, som jag hade läst om i en datortidning för en herrans massa år sedan. Fast det var inte det han menade, utan Java Server Pages...


Svara

Sv: Fundering kring And operatorn ?

Postades av 2004-10-30 00:40:26 - Johan Forsberg

Är det inte härligt med XOR och XNOR idetta fall?

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vblr7/html/vaoprXor.asp

t.ex: if (a=3) XOR (b=4) then ' (Utför om endast ett villkor är uppfyllt)

Kombinera den, och voila <--Stavas det så?

Med vänliga hälsningar
Johan Forsberg


Svara

Sv: Fundering kring And operatorn ?

Postades av 2004-10-30 10:50:54 - Niklas Jansson

Och exakt vilken relevans hade det till diskussionen?


Svara

Sv: Fundering kring And operatorn ?

Postades av 2004-11-01 13:10:00 - Johan Forsberg

Ja, det beror ju på om man är bevandrad i binärteknik.


Svara

Sv: Fundering kring And operatorn ?

Postades av 2004-11-01 13:23:13 - Johan Djupmarker

Om du läser diskussionen igen ser du att det handlar om att inte evaluera uttryck "i onödan" och då kan iaf inte jag se att ditt inlägg tillfört något. Det kommer dessutom bli fel resultat om båda uttrycken är sanna. Men jag kan ha missat något...

/Johan


Svara

Sv: Fundering kring And operatorn ?

Postades av 2004-11-01 14:14:47 - Johan Forsberg

Nej, det var mest ett inlägg som skulle värna om "finare" kod i uttryck där två villkor ställs som inte får vara uppfyllda/inte uppfyllda (det kan hända att jag blivit indoktrinerad av binärteknik).

Det handlar ju egentligen bara om vad jag anser vara lättast kod (vilket jag värderar högt klockan halv fyra när man är 8% levande).
Men, det är ju som sagt mer en fråga om stil.

Med vänliga hälsningar
Johan Forsberg


Svara

Sv: Fundering kring And operatorn ?

Postades av 2004-11-01 18:01:50 - Niklas Jansson

<b>>Nej, det var mest ett inlägg som skulle värna om "finare" kod i uttryck där två villkor ställs som inte får vara uppfyllda/inte uppfyllda (det kan hända att jag blivit indoktrinerad av binärteknik).</b>
Jo, men... vad hade det med diskussionen att göra?

Naturligtvis kan jag, liksom 99% av alla andra programmerare, binär logik och hur man kan använda det.

Diskussionen gällde nyttan eller onyttan med

If villkor1 Then
If villkor2 Then
...

vs

If villkor1 And villkor2 Then
...


Svara

Sv: Fundering kring And operatorn ?

Postades av 2004-11-05 11:16:29 - Johan Forsberg

Uppfattat.


Svara

Nyligen

  • 19:55 kick-off med fokus på hälsa?
  • 19:53 kick-off med fokus på hälsa?
  • 16:24 Föreslå en skönhetsklinik online
  • 16:23 Föreslå en skönhetsklinik online
  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper
  • 16:36 Allt du behöver veta om keramiskt
  • 16:14 Vem anlitar man egentligen när tak

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 570 718
27 958
271 751
3 208
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