Solucionado (ver solução)
Solucionado
(ver solução)
8
respostas

O numero de chaves.{}

O número de chaves não esta de mais ? a opnião do professor não funcionou. Alguém pode me dar uma dica?

8 respostas

Olá, Claudinei, tudo bem?

Você poderia especificar melhor onde você acredita que está o erro? O código da "Opinião do instrutor" deveria funcionar corretamente.

Se o erro continuar persistindo, poderia enviar seu código para eu poder te ajudar melhor?

Fico no aguardo!

solução!

Bom dia Antonio, tudo bem? Espero que sim.

Cara o código instrutor funcionou, mas eu não estou entendendo o começo e os finais dos blocos E:

while( imc<= peso){

if( imc<=massa && imc>= pesoEspecifico){ mostra(calopisita) }else{

    mostra(ok)



como eu sei as quantidades de {} que eu devo colocar, pois eu pensei que quando selecionasse uma chave ela me mostraria a sua correspondente.

Grato pela ajuda

Olá novamente, Claudinei! Tudo bem por aqui!

Vamos lá, vou começar usando seu código como exemplo:

while( imc<= peso){

if( imc<=massa && imc>= pesoEspecifico){
        mostra(calopisita)
        }else{ 

        mostra(ok)

A regra principal seria: para cada chave de abertura {, haverá uma chave de fechamento }. Tudo que fica entre a chave de abertura e a de fechamento é chamado de bloco de código.

Todo while, for ou if tem seu bloco de código. No caso desse código acima, abrimos o bloco do while assim: while( imc<= peso){

Logo depois abrimos o bloco if com esse código: if( imc<=massa && imc>= pesoEspecifico){

Mais embaixo, fechamos o bloco if e abrimos o else na mesma linha: }else{

Por fim, faltou fechar o bloco else com a chave de fechamento. Além disso, também precisamos fechar o bloco while que abrimos lá no começo também. Quando falta alguma chave de fechamento, o console indica erro de sintaxe.

O código ficaria assim então:

while( imc<= peso){  // chave de abertura do while

if( imc<=massa && imc>= pesoEspecifico){  // chave de abertura do if
        mostra(calopisita)
        }else{  // chave de fechamento do if e chave de abertura do else

        mostra(ok)
        }  // chave de fechamento do else
}  // chave de fechamento do while

Além disso, uma dica para ajudar você a "enxergar" melhor os blocos de código é indentar o código, que significa afastar o código para a direita de forma apropriada. Como assim? Vamos indentar corretamente o código acima:

while( imc<= peso){  // chave de abertura do while

    if( imc<=massa && imc>= pesoEspecifico){  // chave de abertura do if
        mostra(calopisita)
    } else {  // chave de fechamento do if e chave de abertura do else
        mostra(ok)
    }  // chave de fechamento do else

}  // chave de fechamento do while

Nós afastamos o código para a direita sempre que iniciamos um bloco de código novo, como por exemplo todo o código dentro do bloco while. E mantemos esse espaçamento até antes da chave de fechamento do bloco.

O único problema é que esse código acima entraria em um loop infinito, então vou trocar o while por um for para que ele possa parar em algum momento:

for(var i = 1; i <= 3; i++){  // chave de abertura do for

    if( imc<=massa && imc>= pesoEspecifico){  // chave de abertura do if
        mostra(calopisita)
    } else {  // chave de fechamento do if e chave de abertura do else
        mostra(ok)
    }  // chave de fechamento do else

}  // chave de fechamento do for

Tente visualizar essas mesmas regras no código do instrutor! Mas se ainda tiver dificuldade, pode me chamar novamente!

Espero ter ajudado! Abraços e bons estudos :)

Valeu Antonio, vou estudar mais para deixar tudo identado ,como voce disse.

Olá novamente, Claudinei!

Mais uma dica: se você estiver utilizando o Visual Studio Code, o atalho Shift + Alt + F irá formatar o código automaticamente, inclusive a indentação. Mas se estiver utilizando outro editor de texto, deve haver um atalho para formatar o código também.

E por fim, caso uma resposta aqui do fórum tenha te ajudado a resolver seu problema, você pode marcá-la como solução!

Espero ter ajudado :)

Olá Antonio,

Grato pelas dicas, estou usando o sublime, voce sabe o atalho para identar?

Olá, Claudinei!

Pelo que pesquisei, não há um atalho pronto para isso no Sublime, mas eu vi nesse tópico do Stack Overflow a seguinte solução:

Basta adicionar esta linha ao seu arquivo "Key Bindings - User" (localizado em Preferences > Keybindings - User )

{"keys": ["alt+shift+f"], "command": "reindent", "args": {"single_line": false}}

Espero ter ajudado!

Valeu Antonio, Fica na paz>