PLSQL Language Reference-PL/SQL語言基礎-表示式-操作符優先順序

LuiseDalian發表於2014-03-07

操作符優先順序

可以使用括號控制運算的順序

DECLARE

    a INTEGER := 1 + 2**2;

    b INTEGER := (1 + 2)**2;

BEGIN

    DBMS_OUTPUT.PUT_LINE('a = ' || TO_CHAR(a));

    DBMS_OUTPUT.PUT_LINE('b = ' || TO_CHAR(b));

END;


當括號巢狀時,最深層次的括號具有最高優先順序。

DECLARE

    a INTEGER := ((1 + 2)*(3 + 4))/7;

BEGIN

    DBMS_OUTPUT.PUT_LINE('a = ' || TO_CHAR(a));

END;


使用括號提高程式的可讀性

DECLARE

    a INTEGER := 2 ** 2 * 3 ** 2;

    b INTEGER := (2 ** 2) * (3 ** 2);

BEGIN

    DBMS_OUTPUT.PUT_LINE('a = ' || TO_CHAR(a));

    DBMS_OUTPUT.PUT_LINE('b = ' || TO_CHAR(b));

END;


 


 

DECLARE

    salary      NUMBER := 60000;

    commission  NUMBER := 0.10;

BEGIN

    -- /+優先順序高

    DBMS_OUTPUT.PUT_LINE('5 + 12 / 4 = ' || TO_CHAR(5 + 12 / 4));

    DBMS_OUTPUT.PUT_LINE('12 / 4 + 5 = ' || TO_CHAR(12 / 4 + 5));

 

    -- 使用括號改變優先順序

    DBMS_OUTPUT.PUT_LINE('8 + 6 / 2 = ' || TO_CHAR(8 + 6 / 2));

    DBMS_OUTPUT.PUT_LINE('(8 + 6) / 2 = ' || TO_CHAR((8 + 6) / 2));

 

    -- 最深層的括號具有最高的優先順序

    DBMS_OUTPUT.PUT_LINE('100 + (20 / 5 + (7 - 3)) = '

                      || TO_CHAR(100 + (20 / 5 + (7 - 3))));

 

    -- 使用括號提高程式的可讀性

    DBMS_OUTPUT.PUT_LINE('(salary * 0.05) + (commission * 0.25) = '

        || TO_CHAR((salary * 0.05) + (commission * 0.25))

    );

 

    DBMS_OUTPUT.PUT_LINE('salary * 0.05 + commission * 0.25 = '

        || TO_CHAR(salary * 0.05 + commission * 0.25)

    );

END;


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/17013648/viewspace-1102786/,如需轉載,請註明出處,否則將追究法律責任。

相關文章