0

Equals Not Equal?

Posted by Erik Gaius,aka [ K i r E ] on Friday, February 20, 2009, 12:51 PM in
USE THE FORCE este.. USE THE EQUALITY OPERATORS! Cguro etong equal sign na ang pinaka gamiting symbol pag nagproprogram keo.. Pero hindi lang pang set ng values ang equal sign! Pwede rin syang gawing OPERATOR, parang addition or subtraction sign!

Actually, kung tama ang pag gamit mo sa equal sign as an operator, magkaka performance boost ang program mo.. although ang kapalit nito ay konting readbility issues (meaning, kung hindi alam ng bumabasang programmer tung technique na to, bka malito sya..) try natin:

Ex#1) Isang common scenario: check if equal, then true, else false. Ilang beses ko na ba to ginawa sa mga MPs..
If X = 7 Then
myBoolean = True
Else
myBoolean = False
End If
Pero using equality operator, pwede ring ganito..
MyBoolean = (X = 7)
ieEvaluate nya muna ung nsa loob ng parethesis, which is basically 'Is X equal to 7?' at mag oOut ng boolean.. medyo nkklito dahil parang twice ka nag set ng value, pero tandaan nyo parati na ang nasa loob ng parenthesis ay palaging nauunang iEvaluate.. isa pa..

Ex#2) Kailangan mong bilangin kung ilan ang "True" between a small number of operations.. Medyo mas komplikado sa first example, pero same principle.. eto ung normal code
If X = 10 Then
i = i + 1
End If
If Y = 10 Then
i = i + 1
End If
If Z = 10 Then
i = i + 1
End If
If W = 10 Then
i = i + 1
End If

debug.write i
That's 13 lines of code, between 4 conditional statements at isang counter variable. Pansinin nyo na apat na beses na syang gumamit ng equality operator, pero pwede pa natin paiksiin to..
i = -(X = 10) -(Y = 10) -(Z = 10) -(W = 10)
WTF?! 1 Line. 4 Conditional statements, at hindi nagbilang ung counter natin, nag subtract lang. gagana kaya to? try natin...

i = - True - False - True - False
i = - (-1) - 0 - (-1) - 0
i = 2

At tama nga! May dalawang true sa pinagpiliiang apat na operations! ^^

Eto pa mga extra tipz:

Ex#3) Need mo ng "check box effect", at integer ang napili mong lalagyan ng variable..
If myInteger = 0 Then
myInteger = 1
Else
myInteger = 0
End If
pero mas mgnda siguro kung ganito:
myInteger = 1 - myInteger
Same effect yan. Kung 1 ung initial value, magiging 0 (dahil 1 - 1 = 0). Kung 0 nmn ung initial value, magiging 1 (dahil 1 - 0 = 1). Aus no? pero ndi lang yan..

Ex#4) Need mo ulit ng "check box effect", integer ulit, pero ang pagpipilian ay 1 at 2..
myInteger = 3 - myInteger
Kta nyo ung pattern ng "check box effect"? Ang tawag dyan ay toggling.. as in toggle..

Disclaimer: Baka hindi gumana ung example #2 sa linux systems.. baliktad kasi ang true/false values dun! Try nyu nlng, hindi ako sure...

Edit: Pahabol! Simple toggle kung boolean ang variable mo:
myBoolean = not myBoolean

:D :D

0 Comments

Post a Comment

Copyright © Gains & Hart Co. 2009 .Net.ph All rights reserved. Theme by Laptop Geek. | Bloggerized by FalconHive.