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?
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?
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!
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>