Help 2: Estudando programação

Pessoal,

Estou estudando sozinho programação e por isso agradeço quem pode me ajudar.

No javascprit eu consigo usar FUNÇÃO e IF ao mesmo tempo ?

Por exemplo:

function sexo (masculino) {
	if (imc <= 20.7){
	mostra ("Você está abaixo do peso ideal.")
	}
	if (imc >=20.7 && imc <=26.4){
	mostra ("Você está no peso ideal.")
	}
	if (imc >=26.7 && imc<=27.8){
	mostra ("Você está um pouco acima do peso.")
	}
	if (imc >= 27.8 && imc <=31.1){
	mostra ("Você está acima do peso.")
	}
	if (imc >= 31.3) {
	mostra ("Você está obeso.")
    }
}	

Agradeço de alguém puder me ajudar !!!

Consegue sim.

De forma simplista, você pode usar qualquer função dentro de qualquer outra. Só precisa ter cuidado pro seu código não ficar confuso.

E por que não conseguiria? Uma função é “apenas” uma sequência de comandos que pode ser reaproveitada (resumindo bem porcamente). E dentro dela você pode ter qualquer código válido.

Mas só pra constar, sua função não faz sentido. Ela se chama sexo, recebe um parâmetro chamado masculino, mas o código dela verifica o IMC, o que é bem confuso. O parâmetro masculino não está sendo usado pra nada, e de onde vem o IMC? Ele também deveria ser um parâmetro.

Sem contar que se o IMC for exatamente 20.7 ele entra em dois if's (no abaixo do peso e no peso ideal).

Enfim, usando os mesmos valores, a ideia seria fazer algo assim:

function mostraResultado(imc) {
    if (imc <= 20.7) {
        mostra ("Você está abaixo do peso ideal.")
    } else if (imc <= 26.4) {
        mostra ("Você está no peso ideal.")
    } else if (imc <= 27.8) {
        mostra ("Você está um pouco acima do peso.")
    } else if (imc <= 31.1) {
        mostra ("Você está acima do peso.")
    } else {
        mostra ("Você está obeso.")
    }
}

Repare que não precisa testar o mesmo valor duas vezes. Se o IMC for menor ou igual a 20,7 ele entra no primeiro if. Se não entrou nesse if é porque é maior, então não precisa testar isso de novo no else.

Depois, se for menor ou igual a 26,4 vai entrar no segundo if. Se não entrar ali é porque é maior e não precisa testar de novo no próximo e assim por diante.

Se não entrar em nenhum if é porque é maior que 31,1 e entra no último else.

1 curtida

Obrigado.

Hugo,

Cara. VALEU MESMO !!!
Entendi e ficou muito mais claro o que é FUNÇÃO.
Já li umas 03 vezes para gravar a ideia de como usar função.
Excelente sua explicação.