-
O funcionamento do operador ternário (condição)?(operação 1):(operação 2) é o seguinte: a condição é avaliada se for verdadeira - valores diferentes de 0 - a (operação 1) é executada, caso contrário, a (operação 2) será executada.
Assim, na primeira iteração do fluxo do i%j ==> (5%10) tem resto 5 gerando verdadeiro como resposta do operador, daí será escrito "viva", na sequência, i++ = 6 e j=2, agora a operação i%j ==> (6%2) será 0, enviando uma resposta de falso ao operador que escreverá "mais".
-
Questão correta. Mas achei estranho o ponto no meio das tags < . html>
-
bem, eu rodei no meu navegador isso, e sabe o que deu?
<.html> <.script> var i=5; var j=10; do { document.write(i % j ? " viva ":" mais "); j=2; i++; } while (i<=6); <./script> <./html>
-
código copiado e colado em documento *.html. Saida:
"<.html> <.script> var i=5; var j=10; do { document.write(i % j ? " viva ":" mais "); j=2; i++; } while (i<=6); <./script> <./html>"
Questão ERRADA!!!!! ponto final....
Para o código rodar devem ser retirados os "." das tags html...
-
Se o código da questão for executado no navegador, o resultado, de fato não será "viva mais" mas sim a impressão de todo o código na pagina, portanto, a questão está errada e isso se dá pela presença do ".' (ponto) antes dos marcadores html e script.
Na prática, para que o código javascript funcione basta retirar o (.) do trecho ".script" e "./script" e para que o somente texto "viva mais" seja exibido, basta retirar o (.) do trecho ".html" e "./html", portanto, se não houve erro no momento de trazer esta questão da prova para este site a questão está totalmente errada!
-
Quanto aos pontos que aparecem nas TAG HTML ("< . html>" em vez de "< html>"): eles não existiam na prova (aparentemente são um recurso ou problema do site) e devem ser desconsiderados.
A questão original (nº 114) consta em: http://www.cespe.unb.br/concursos/stf_13/arquivos/STF13_002_06.pdf
-
Questão CORRETA!
Para responder a questão, primeiro é necessário saber como o ternário funciona:
condição ? true : false
Na questão foi utilizado o operador % (resto da divisão). Com isso, caso tenha algum resto na divisão da variável i e j, será executado a instrução "true" e se o resto da divisão for 0 (zero), será executado a instrução false, pois não teve sobra.
Portanto, será impresso na página a palavra "viva mais", pois no primeiro caso irá sobrar 5, true, (divisão de 5/10), e no segundo caso não irá sobrar, false, (6/2).
-
O lance é sacar que a função document.write(i % j ? " viva " : "mais "), da forma com foi escrita, sobrescreverá os valores impressos. Não fosse isso, a questão já estaria errada logo na primeira iteração, pois logo na na primeira passada será impresso "mais". Como a variável i se inicia com 5 e a j com 10, o resto da divisão de 5 por 10 é 0 (5 % 10). Assim o resultado é falso, o que imprimirá o valor "mais" logo na primeira iteração.
-
Questão pra pegar quem estudou pela W3Schools e acha que o document.write() vai apagar tudo e deixar só "mais" na segunda iteração. Aparentemente, isso só acontece quando o documento já foi totalmente carregado, o que não é o caso da questão
https://www.w3schools.com/jsref/met_doc_write.asp