Compare commits
2 Commits
ffa37da4a1
...
c6acdb0ce9
Author | SHA1 | Date |
---|---|---|
grz | c6acdb0ce9 | |
grz | 699a23cc1c |
|
@ -1,6 +1,6 @@
|
|||
[Índice](README.md)
|
||||
|
||||
# Blocos de código e escopo de variáveis
|
||||
# ![Robô](img/robof-64px.png) Blocos de código e escopo de variáveis
|
||||
|
||||
Em Javascript um `bloco` é uma declaração escrita entre chaves `{ }` que tem por objetivo agrupar linhas de código.
|
||||
|
||||
|
@ -24,7 +24,7 @@ Por exemplo, para:
|
|||
trechos de código que serão `executados condicionalmente` - apenas se uma certa condição for satisfeita
|
||||
- declaração do `corpo de uma função`
|
||||
|
||||
## Visibilidade (escopo)
|
||||
## ![Maguinho](img/mago-64px.png) Visibilidade (escopo)
|
||||
|
||||
Blocos alteram a `visibilidade` das variáveis no código.
|
||||
|
||||
|
|
|
@ -0,0 +1,105 @@
|
|||
[Índice](README.md)
|
||||
|
||||
# ![Robô](img/robof-64px.png) Desvios condicionais - if, if-else
|
||||
|
||||
Já vimos o operador condicional do Javascript (o único operador ternário da linguagem) que nos permite testar o valor de verdade de uma **condição** e retornar um valor **x** se a condição for verdadeira e um valor **y** se ela for falsa.
|
||||
|
||||
As estruturas sintáticas `if`, `if-else` e `switch-case` podem fazer o mesmo e muito mais.
|
||||
|
||||
|
||||
> Nos exemplos abaixo vamos supor que existe um objeto `login` que contém os dados de login de um usuário de um sistema hipotético e que esse objeto tem um método chamado `valido()` que retorna `true` caso o login seja válido ou `false` caso contrário.
|
||||
|
||||
Exemplo de uso do `operador condicional`.
|
||||
|
||||
```js
|
||||
const mensagem = login.valido() ? 'Olá!' : 'Quem é você?'
|
||||
|
||||
console.log(mensagem)
|
||||
```
|
||||
|
||||
O mesmo pode ser escrito com `if`
|
||||
|
||||
```js
|
||||
let mensagem = 'Quem é você'
|
||||
|
||||
if(login.valido()) {
|
||||
mensagem = `Olá!'
|
||||
}
|
||||
|
||||
console.log(mensagem)
|
||||
```
|
||||
|
||||
Ou pode ser escrito com `if-else`
|
||||
|
||||
```js
|
||||
let mensagem
|
||||
|
||||
if(login.valido()) {
|
||||
mensagem = 'Olá!'
|
||||
} else {
|
||||
mensagem = 'Quem é você?'
|
||||
}
|
||||
|
||||
console.log(mensagem)
|
||||
```
|
||||
|
||||
Podemos transformar esses trechos de código em funções para facilitar seu uso em um programa mais extenso.
|
||||
|
||||
- Usando `operador condicional`
|
||||
|
||||
```js
|
||||
function mensagemDeLogin(login) {
|
||||
return login.valido() ? 'Olá!' : 'Quem é você?'
|
||||
}
|
||||
|
||||
console.log(mensagemLogin(umLogin))
|
||||
```
|
||||
- Usando `if`
|
||||
|
||||
```js
|
||||
function mensagemDeLogin(login) {
|
||||
if(login.valido()) {
|
||||
return 'Olá!'
|
||||
}
|
||||
return 'Quem é você?'
|
||||
}
|
||||
|
||||
console.log(mensagemLogin(umLogin))
|
||||
```
|
||||
|
||||
- Usando `if-else`
|
||||
```js
|
||||
function mensagemDeLogin(login) {
|
||||
if(login.valido()) {
|
||||
return 'Olá!'
|
||||
} else {
|
||||
return 'Quem é você'
|
||||
}
|
||||
}
|
||||
|
||||
console.log(mensagemLogin(umLogin))
|
||||
```
|
||||
|
||||
Para esse tipo de `teste condicional` o operador condicional é mais conciso. Como esse tipo de teste é bastante comum, o operador condicional acaba sendo muito usado.
|
||||
|
||||
## ![Maguinho](img/mago-64px.png) Quando usar if, if-else
|
||||
|
||||
As estruturas `if` e `if-else` permitem o uso de blocos de código, enquanto o operador condicional `? :` só permite expressões.
|
||||
|
||||
Por isso, se o código que precisamos executar não é uma simples expressão ou um simples valor a ser retornado, se precisarmos executar várias linhas de código em função do valor de verdade que está sendo testado, então precisamos usar `if`, `if-else`, porque eles permitem o uso de blocos de código.
|
||||
|
||||
Por exemplo, vamos supor que a mensagem de login devesse ser atribuída ao próprio objeto `login` após o teste `login.valido()` e depois retornada. Essas seriam 2 operações e precisariam ser escritas em um bloco de código. Assim:
|
||||
|
||||
```js
|
||||
function mensagemLogin(login) {
|
||||
if(login.valido()) {
|
||||
login.setMensagem('Olá!')
|
||||
return login.getMensagem()
|
||||
} else {
|
||||
login.setMensgem('Quem é você?')
|
||||
return login.getMensagem()
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
[Índice](README.md)
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
# Padrões para loops
|
||||
|
||||
## Loop infinito
|
||||
## ![Maguinho](img/mago-64px.png) Loop infinito
|
||||
|
||||
Para fazer um loop infinito podemos usar um bloco controlado por `while` ou `for`.
|
||||
|
||||
|
@ -98,7 +98,7 @@ console.log('fim do laço externo');
|
|||
```
|
||||
|
||||
|
||||
## Variável contadora
|
||||
## ![Robô](img/robof-64px.png)Variável contadora
|
||||
|
||||
Criamos uma variável contadora quando precisamos contar o número de ocorrências de um evento Normalmente ela vai começar com valor `0`.
|
||||
|
||||
|
@ -120,7 +120,7 @@ repetir
|
|||
|
||||
Nesse exemplo a variável `nVezes` está contando o número de vezes que a condição `numero igual a 10` retornou `true`, pois o código que incrementa a variável `nVezes` só é executado sob essa condição
|
||||
|
||||
## Percorrer um array
|
||||
## ![Maguinho](img/mago-64px.png) Percorrer um array
|
||||
|
||||
Para percorrer um array usamos um loop controlado por uma variável contadora. A estratégia é acessar o array usando o valor dessa variável como índice.
|
||||
|
||||
|
@ -165,7 +165,7 @@ for (let variavel = 0; index < array.length; index++) {
|
|||
|
||||
Note que a inicialização da variável e também o incremento ocorrem na declaração do for.
|
||||
|
||||
## Somatório - variável acumuladora
|
||||
## ![Robô](img/robof-64px.png) Somatório - variável acumuladora
|
||||
|
||||
Podemos usar um loop para somar uma série de valores. Para isso, a estratégia é usar uma `variável acumuladora` que nada mais é que uma variável usada exclusivamente para acumular os valores das somas parciais dos valores durante cada execução do loop.
|
||||
|
||||
|
|
|
@ -69,7 +69,7 @@ Opcionalmente, você pode instalar o **VSCodium**, que é uma versão livre (lic
|
|||
- [Funções](./JS-Funcoes.md) - declaração, parâmetros, retorno, reutilização de código
|
||||
- [Estudo de caso - Baby Shark](./JS-Funcoes-EstudoDeCaso.md) - abstração de operações, composição de funções, refatoração
|
||||
|
||||
## Aula 09 - Arrays
|
||||
## Aula 09 - Arrays - I
|
||||
|
||||
- [Arrays](./JS-Arrays.md) - Criação, acesso, métodos úteis, iteração
|
||||
|
||||
|
@ -88,11 +88,11 @@ Os datasets de emails e telefones foram gerados usando as ferramentas disponíve
|
|||
- Telefones falsos: [https://fauxid.com/tools/fake-phone-number](https://fauxid.com/tools/fake-phone-number)
|
||||
|
||||
|
||||
## Aula 10 - Desvio condicional e loops
|
||||
## Aula 10 - Desvio condicional e loops
|
||||
|
||||
- [Blocos de código e escopo de variáveis](./JS-Blocos-de-codigo-e-escopo-de-variaveis.md)
|
||||
- [Desvios condicionais]()- com if, if-else e switch-case
|
||||
- [Loops]() - com for e while
|
||||
- [Desvios condicionais](./JS-Desvios-condicionais.md) - com `if`, `if-else`
|
||||
- [Loops]() - com `for` e `while`
|
||||
- [Padrões para loops](./JS-Padroes-para-loops.md) - loop infinito, flags, variáveis contadoras, percorrer array, variáveis acumuladoras
|
||||
|
||||
### [Exercícios](./JS-Exercicios-condicionais-e-loops.md) - condicionais e loops
|
||||
|
|
Loading…
Reference in New Issue