neohacker:
Nossa achei que aqui era o Fórum de Java Básico não era :?:
Achava que questões de certficação ficassem neste fórum http://www.guj.com.br/forums/show/11.java
Respeitem o Fórum :evil:
8)
Na verdade, essa questão diz respeito ao java em si, então também cabe bem a esse forum. Ele não está perguntando do processo de certificação, mas da linguagem em si. Ele poderia ter visto um código desse no trabalho, que algum colega inspirado implementou…
Agora, meu comentário abaixo, deveria estar no outro forum, hehehehe.
O que eles querem avaliar com isso? Que o cara é capaz de entender código criptico? Que o for pode ser usado de uma maneira esdruxula? Que você pode tornar uma expressão condicional ilegível? Que o terceiro parâmetro do for não precisa necessariamente ser o contador? E o primeiro não precisa inicializar nada? E que o contador pode estar dentro do for?
Na prática, acho que qualquer programador com bom senso escreveria o código assim:
public static void main( String[] args) {
foo('A');
for(int i = 0; i<2; i++) {
foo('B');
foo('D');
foo('C');
}
foo('B');
}
Acho que há maneiras mais lógicas e coerentes de testar se o candidato sabe ou não a ordem em que o for é executado, quando a avaliação da condição é feita, etc. Uma gambiarra dessa pode ser interessante para demonstrar isso visualmente, num livro de java, mas certamente não deveria estar numa prova de certificação.
Na minha opinião, isso é um uso possível do for, mas não deixa de ser um uso errado. A estrutura foi criada com uma finalidade clara, e tem 3 parâmetros cada um com um significado (inicialização, teste de condição, incrementos de variáveis). Ele simplesmente prostituiu isso, e esperava que o candidato soubesse fazer isso também.
E vamos falar a verdade, não é nem para preparar o candidato para uma situação dessas na prática. Pq na prática, temos depuradores, exceções e outros recursos para nos ajudar… E não estamos tão pressionados por tempo (ou preço) da prova…