MAC 441 - Tópicos de Programação
Orientada a Objetos
Aula 6 - 11/03/10
Condicionais
- Por ser uma linguagem minimalista, Smalltalk não possui
comandos como if, while, for, etc
- Mas os tipos booleanos possuem mensagens que assumem este papel
- A biblioteca de classes possui as classes Boolean, True e False
- As classes True e False só tem uma
instância cada; são chamadas de true e false
- Exemplos:
- (x < 0)
ifTrue:
[Dialog warn 'Cuidado, o número é negativo!']
- (número \\ 2) = 0
"resto da divisão por 2 é 0?"
ifTrue: [paridade := 0]
ifFalse: [paridade := 1]
- paridade := (número \\ 2) = 0 ifTrue: [0] ifFalse: [1]
Repetição Condicional
- index := 1.
[index <= list size]
whileTrue: [list at: index put: 0.
index := index + 1]
- [list size >= 10] whileFalse: [list getMoreContents]
- exercício interessante: ver a implementação
do método timesRepeat:
Argumentos para Blocos
- Blocos podem receber um ou mais argumentos
- meuQueridoBloquinho := [:array |
total := total + array size]
- meuQueridoBloquinho value:
meuQueridoVetor
- [:novoElemento |
índice := índice + 1.
lista at: índice put: novoElemento]
- delta := [:a :b :c | b ** 2
- (4 * a * c)].
delta value: 10 value: 20
value: 30
Repetição em um Intervalo
- 1 to: 10 do: [:t| x := x +
t] "t vai de 1 a 10 em incrementos unitários"
- -10 to: 10 by: 0.1 [:t| x := x + t*t]
Bibliografia
- Smalltalk-80 - The Language and
Its Implementation. Adele
Goldberg e David Robson.
- Conhecendo o Smalltalk.
Abdala e Wangenheim.
Próxima Aula
Aula Anterior
Página de MAC 441
Página do Fabio
Página do DCC