quinta-feira, 14 de março de 2013

Aprendendo RGSS do zero - Aula 02


Nesta aula vamos falar sobre os operadores!

- Introdução

Os operadores são instruções que usamos em conjunto das variáveis ou instâncias. É com o uso deles que fazemos cálculos aritméticos, declaramos uma variável, etc.

Vamos começar pelo de atribuição:

= => Atribui ou declara uma variável.

x = 10

+ e - => Soma e subtração, respectivamente.

var1 + var2
var3 = var2 - var1

Pode-se também usar += e -=, logo as expressões e os comentários são idênticos:

v += 10 # v = v + 10
v -= v  # v = v - v

* e / => Multiplicação e divisão, respectivamente.

10 * 58
v / v

Também pode-se usar *= e /= como acima.

+ e - (Unários) => Sinal positivo e negativo, respectivamente:

-10
+58

! => Negador, troca o valor da expressão (verdadeiro ou falso):

!true # => false
!false # => true

&& ou and => AND (e), retorna verdadeiro se duas expressões forem verdadeiras, falso se pelo menos uma for falsa e falso se todas forem falsas.

true && true   # => true
true && false  # => false
false && false # => false

|| ou or => OR (ou), retorna verdadeiro se duas expressões forem verdadeiras, verdadeiro se pelo menos uma for falsa e falso se todas forem falsas.

true || true   # => true
true || false  # => true
false || false # => false

. => Usa-se para chamar uma variável ou método de uma classe ou módulo.

class A
     attr_accessor :var
     def metodo
       msgbox "método chamado"
     end
end

A.metodo # "método chamado"
A.var    # valor de var

() => Usa-se para tornar uma expressão separada da outra, assim, evita-se que haja problemas com prioridade, também para chamar um método, porém não é obrigatório.

x = (10/2)*(5+8)-8 # => (5*13)-8

Há outros que serão apresentados futuramente.

- Propriedades dos operadores

Por conveniência e melhor legibilidade usa-se espaço para separar os operadores dos operandos, mas pode-se também escrever toda a expressão junta:

a=10+b*4 # a = 10 + b * 4
x*2/4-y  # x * 2 / 4 - y

Há também prioridade entre os operadores, ou seja, a propriedade de um operador ser lido e interpretado antes do outro.

Aqui está a lista de prioridade, em ordem decrescente:

::
[]
**
-(unary)  +(unary)  !  ~
*  /  %
+  -
<< >>
&
|  ^
> >=  < <=
<=> ==  === !=  =~  !~
&&
||
..  ...
?:(conditional operator)
=(+=, -= ... )
not
and or

Vamos agora ver exemplos com prioridades.

a = 10*5-4
a = 98-10/2

A resposta será:

a = (10*5)-4    # 46
a = 98-(10/2)   # 93 

Pois os operadores * e / tem maior prioridade que + e -, logo são interpretados antes. Para mudar a o ordem de interpretação, separa-se a expressão com o operador parêntesis. Como mostrado acima.

Na próxima aula falaremos de estrutura de controle e outros operadores.

Nenhum comentário:

Postar um comentário