True & False!

Discussion in 'ASP General' started by Arpan, Jul 22, 2005.

  1. Arpan

    Arpan Guest

    <%
    If(False) Then
    Response.Write("False")
    Else
    Response.Write("True")
    End If
    %>

    In the above code, the Else condition will be executed. Why?

    Thanks,

    Arpan
    Arpan, Jul 22, 2005
    #1
    1. Advertising

  2. Arpan wrote:
    > <%
    > If(False) Then
    > Response.Write("False")
    > Else
    > Response.Write("True")
    > End If
    > %>
    >
    > In the above code, the Else condition will be executed. Why?
    >

    Because it's False
    --
    Microsoft MVP - ASP/ASP.NET
    Please reply to the newsgroup. This email account is my spam trap so I
    don't check it very often. If you must reply off-line, then remove the
    "NO SPAM"
    Bob Barrows [MVP], Jul 22, 2005
    #2
    1. Advertising

  3. Arpan

    Steven Burn Guest

    Because Boolean conditions always default to True. For example;

    <%
    Dim blnRet
    If blnRet <> False Then Response.Write "blnRet is " & blnRet &
    "<br><br>"
    blnRet = False
    If blnRet <> True Then Response.Write "blnRet is " & blnRet
    %>

    --
    Regards

    Steven Burn
    Ur I.T. Mate Group
    www.it-mate.co.uk

    Keeping it FREE!
    "Arpan" <> wrote in message
    news:...
    > <%
    > If(False) Then
    > Response.Write("False")
    > Else
    > Response.Write("True")
    > End If
    > %>
    >
    > In the above code, the Else condition will be executed. Why?
    >
    > Thanks,
    >
    > Arpan
    >
    Steven Burn, Jul 22, 2005
    #3
  4. Arpan

    Mark Schupp Guest

    Because the "if block" of an if-then-else construct is executed when the if
    statements expression is true. False is never true so the "else block" will
    always be executed.

    --
    --Mark Schupp


    "Arpan" <> wrote in message
    news:...
    > <%
    > If(False) Then
    > Response.Write("False")
    > Else
    > Response.Write("True")
    > End If
    > %>
    >
    > In the above code, the Else condition will be executed. Why?
    >
    > Thanks,
    >
    > Arpan
    >
    Mark Schupp, Jul 22, 2005
    #4
  5. Arpan

    Roland Hall Guest

    "Steven Burn" wrote in message news:...
    : Because Boolean conditions always default to True. For example;
    :
    : <%
    : Dim blnRet
    : If blnRet <> False Then Response.Write "blnRet is " & blnRet &
    : "<br><br>"
    : blnRet = False
    : If blnRet <> True Then Response.Write "blnRet is " & blnRet
    : %>

    I think you got that backwards.

    The initial Boolean value for the new object. If Boolvalue is omitted, or is
    false, 0, null, NaN, or an empty string, the initial value of the Boolean
    object is false. Otherwise, the initial value is true.

    --
    Roland Hall
    /* This information is distributed in the hope that it will be useful, but
    without any warranty; without even the implied warranty of merchantability
    or fitness for a particular purpose. */
    Technet Script Center - http://www.microsoft.com/technet/scriptcenter/
    WSH 5.6 Documentation - http://msdn.microsoft.com/downloads/list/webdev.asp
    MSDN Library - http://msdn.microsoft.com/library/default.asp
    Roland Hall, Jul 23, 2005
    #5
  6. Arpan

    Arpan Guest

    Thanks, mates, for your inputs. In the following 2 sample codes, the
    first example executes the 'If' condition whereas the second example
    executes the 'Else' condition.

    Code 1:
    ----------------------------------------------
    <%
    If(1) Then
    Response.Write("True")
    ElseIf(0) Then
    Response.Write("False")
    End If
    %>
    ----------------------------------------------

    Code 2:
    ----------------------------------------------
    <%
    If(0) Then
    Response.Write("True")
    ElseIf(1) Then
    Response.Write("False")
    End If
    %>
    ----------------------------------------------

    Why?

    Thanks once again to all of you,

    Regards,

    Arpan
    Arpan, Jul 24, 2005
    #6
  7. Arpan

    Steven Burn Guest

    0 generally =True/Success, 1 generally = False/Failure

    --
    Regards

    Steven Burn
    Ur I.T. Mate Group
    www.it-mate.co.uk

    Keeping it FREE!
    "Arpan" <> wrote in message
    news:...
    > Thanks, mates, for your inputs. In the following 2 sample codes, the
    > first example executes the 'If' condition whereas the second example
    > executes the 'Else' condition.
    >
    > Code 1:
    > ----------------------------------------------
    > <%
    > If(1) Then
    > Response.Write("True")
    > ElseIf(0) Then
    > Response.Write("False")
    > End If
    > %>
    > ----------------------------------------------
    >
    > Code 2:
    > ----------------------------------------------
    > <%
    > If(0) Then
    > Response.Write("True")
    > ElseIf(1) Then
    > Response.Write("False")
    > End If
    > %>
    > ----------------------------------------------
    >
    > Why?
    >
    > Thanks once again to all of you,
    >
    > Regards,
    >
    > Arpan
    >
    Steven Burn, Jul 24, 2005
    #7
  8. Arpan

    Steven Burn Guest

    hehe Roland, knew I'd feck something up somewhere ;o) (usually do)(cheers
    for the correction)

    --
    Regards

    Steven Burn
    Ur I.T. Mate Group
    www.it-mate.co.uk

    Keeping it FREE!

    "Roland Hall" <nobody@nowhere> wrote in message
    news:...
    > "Steven Burn" wrote in message

    news:...
    > : Because Boolean conditions always default to True. For example;
    > :
    > : <%
    > : Dim blnRet
    > : If blnRet <> False Then Response.Write "blnRet is " & blnRet &
    > : "<br><br>"
    > : blnRet = False
    > : If blnRet <> True Then Response.Write "blnRet is " & blnRet
    > : %>
    >
    > I think you got that backwards.
    >
    > The initial Boolean value for the new object. If Boolvalue is omitted, or

    is
    > false, 0, null, NaN, or an empty string, the initial value of the Boolean
    > object is false. Otherwise, the initial value is true.
    >
    > --
    > Roland Hall
    > /* This information is distributed in the hope that it will be useful, but
    > without any warranty; without even the implied warranty of merchantability
    > or fitness for a particular purpose. */
    > Technet Script Center - http://www.microsoft.com/technet/scriptcenter/
    > WSH 5.6 Documentation -

    http://msdn.microsoft.com/downloads/list/webdev.asp
    > MSDN Library - http://msdn.microsoft.com/library/default.asp
    >
    >
    Steven Burn, Jul 24, 2005
    #8
  9. Arpan

    Roland Hall Guest

    "Steven Burn" wrote in message
    news:exq4$u%...
    : hehe Roland, knew I'd feck something up somewhere ;o) (usually do)(cheers
    : for the correction)

    I dunno Steven. I think I'm shock and you're awe. I wait patiently for the
    times when the masters miss one. (O;=

    --
    Roland Hall
    /* This information is distributed in the hope that it will be useful, but
    without any warranty; without even the implied warranty of merchantability
    or fitness for a particular purpose. */
    Technet Script Center - http://www.microsoft.com/technet/scriptcenter/
    WSH 5.6 Documentation - http://msdn.microsoft.com/downloads/list/webdev.asp
    MSDN Library - http://msdn.microsoft.com/library/default.asp
    Roland Hall, Jul 24, 2005
    #9
  10. Arpan

    Roland Hall Guest

    "Arpan" wrote in message
    news:...
    : Thanks, mates, for your inputs. In the following 2 sample codes, the
    : first example executes the 'If' condition whereas the second example
    : executes the 'Else' condition.
    :
    : Code 1:
    : ----------------------------------------------
    : <%
    : If(1) Then
    : Response.Write("True")
    : ElseIf(0) Then
    : Response.Write("False")
    : End If
    : %>
    : ----------------------------------------------
    :
    : Code 2:
    : ----------------------------------------------
    : <%
    : If(0) Then
    : Response.Write("True")
    : ElseIf(1) Then
    : Response.Write("False")
    : End If
    : %>
    : ----------------------------------------------
    :
    : Why?

    I'm winging this answer...

    I think that's because both are equal to a value, so both are true. You
    weren't testing a variable to see if it was equal to a value.
    If somevariable = 0 then

    ....and unless you assigned a value to it, no matter what value you tested
    against it, it would be false. Variables in ASP VBScript are variants. In
    other words, they vary depending on how you assign them.

    Since you cannot assign a number as a variable, a number alone is a value
    and cannot be tested as boolean.

    Ok, now I'm cheating...

    MSFT says:

    Naming Restrictions
    Variable names follow the standard rules for naming anything in VBScript. A
    variable name:

    a.. Must begin with an alphabetic character.
    b.. Cannot contain an embedded period.
    c.. Must not exceed 255 characters.
    d.. Must be unique in the scope in which it is declared.
    To test what variable subtype a variable is, use varType(variable)

    wscript.echo varType(0) will return 2, which is an integer, so 1 could also
    return 2, since it is also an integer.

    To find out what type of variable it ss, use typename(variable) to get a
    verbose return.

    wscript.echo typename(0) returns Integer.

    So, it's not boolean which is probably why it returns true for both.

    VarType Constants
    Constant Value Description
    vbEmpty 0 Uninitialized (default)
    vbNull 1 Contains no valid data
    vbInteger 2 Integer subtype
    vbLong 3 Long subtype
    vbSingle 4 Single subtype
    vbSingle 5 Double subtype
    vbCurrency 6 Currency subtype
    vbDate 7 Date subtype
    vbString 8 String subtype
    vbObject 9 Object
    vbError 10 Error subtype
    vbBoolean 11 Boolean subtype
    vbVariant 12 Variant (used only for arrays of variants)
    vbDataObject 13 Data access object
    vbDecimal 14 Decimal subtype
    vbByte 17 Byte subtype
    vbArray 8192 Array


    Typename Return Values
    Value Description
    Byte Byte value
    Integer Integer value
    Long Long integer value
    Single Single-precision floating-point value
    Double Double-precision floating-point value
    Currency Currency value
    Decimal Decimal value
    Date Date or time value
    String Character string value
    Boolean Boolean value; True or False
    Empty Unitialized
    Null No valid data
    <object type> Actual type name of an object
    Object Generic object
    Unknown Unknown object type
    Nothing Object variable that doesn't yet refer to an object instance
    Error Error


    --
    Roland Hall
    /* This information is distributed in the hope that it will be useful, but
    without any warranty; without even the implied warranty of merchantability
    or fitness for a particular purpose. */
    Technet Script Center - http://www.microsoft.com/technet/scriptcenter/
    WSH 5.6 Documentation - http://msdn.microsoft.com/downloads/list/webdev.asp
    MSDN Library - http://msdn.microsoft.com/library/default.asp
    Roland Hall, Jul 24, 2005
    #10
  11. Arpan

    Steven Burn Guest

    hehe, good job I'm no master <g>, prolly be worse than I already am :eek:\

    --
    Regards

    Steven Burn
    Ur I.T. Mate Group
    www.it-mate.co.uk

    Keeping it FREE!

    "Roland Hall" <nobody@nowhere> wrote in message
    news:...
    > "Steven Burn" wrote in message
    > news:exq4$u%...
    > : hehe Roland, knew I'd feck something up somewhere ;o) (usually

    do)(cheers
    > : for the correction)
    >
    > I dunno Steven. I think I'm shock and you're awe. I wait patiently for

    the
    > times when the masters miss one. (O;=
    >
    > --
    > Roland Hall
    > /* This information is distributed in the hope that it will be useful, but
    > without any warranty; without even the implied warranty of merchantability
    > or fitness for a particular purpose. */
    > Technet Script Center - http://www.microsoft.com/technet/scriptcenter/
    > WSH 5.6 Documentation -

    http://msdn.microsoft.com/downloads/list/webdev.asp
    > MSDN Library - http://msdn.microsoft.com/library/default.asp
    >
    >
    Steven Burn, Jul 24, 2005
    #11
  12. Arpan

    Mark Schupp Guest

    > "Arpan" wrote in message
    > news:...
    > : Thanks, mates, for your inputs. In the following 2 sample codes, the
    > : first example executes the 'If' condition whereas the second example
    > : executes the 'Else' condition.
    > :
    > : Code 1:
    > : ----------------------------------------------
    > : <%
    > : If(1) Then
    > : Response.Write("True")
    > : ElseIf(0) Then
    > : Response.Write("False")
    > : End If
    > : %>
    > : ----------------------------------------------
    > :
    > : Code 2:
    > : ----------------------------------------------
    > : <%
    > : If(0) Then
    > : Response.Write("True")
    > : ElseIf(1) Then
    > : Response.Write("False")
    > : End If
    > : %>
    > : ----------------------------------------------
    > :
    > : Why?


    The definition of a "true" expression is one that returns a non-zero value.
    From the docs for CBool():

    If expression is zero, False is returned; otherwise, True is returned. If
    expression can't be interpreted as a numeric value, a run-time error occurs.

    Try this for fun:
    response.write CLng(true)
    response.write CLng(false)


    --
    Mark Schupp
    Mark Schupp, Jul 25, 2005
    #12
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Siemel Naran

    Does true ^ true return false?

    Siemel Naran, Jun 17, 2004, in forum: C++
    Replies:
    19
    Views:
    654
    Chris Theis
    Jun 18, 2004
  2. Pierre Quentel

    "0 in [True,False]" returns True

    Pierre Quentel, Dec 12, 2005, in forum: Python
    Replies:
    59
    Views:
    1,021
    Grant Edwards
    Dec 16, 2005
  3. André
    Replies:
    3
    Views:
    1,563
  4. bdb112
    Replies:
    45
    Views:
    1,321
    jazbees
    Apr 29, 2009
  5. Shea Martin

    false or true == true .... WTF?

    Shea Martin, Apr 5, 2007, in forum: Ruby
    Replies:
    4
    Views:
    97
    Bertram Scharpf
    Apr 5, 2007
Loading...

Share This Page