Estou postando aqui porque a pergunta abrange didática e não somente o java.
Na minha faculdade adotam java já na cadeira de lógica de programação. Todos os exercícios são feitos nessa linguagem. Eu venho sentindo dificuldade porque é preciso conhecer não somente a lógica, mas as particularidades do java e o meu professor(repeti e já tive outro na mesma matéria que tem a mesma metodologia) não explica tudo e faz barreira quando algum aluno traz um conhecimento externo. Por exemplo, num trabalho extra pra ganhar pontos, se o aluno fizer jOptionPane ao invés de System.out.println, o professor quer saber o motivo. Imagine se for um código que não se pareça com o jeito que ele ensina. Aí é um interrogatório, vai querer saber onde aprendeu, o porque de fazer assim ou assado…
A coordenação aprova essa didática.
Se preocupam com a lógica e não com o java em si, pois diz que a cadeira é de lógica. Sim, mas se é de lógica, por que ensinam usando java?
Pra facilitar o que quero dizer, vai um exemplo:
Eu fiz um código assim:
[code]for( i=0; i<p.length; i++){
if(p[ i ] ==30){
System.out.println("30 se encontra na posição " + i);
}else{
}
}
System.out.println(“Não existe 30 em nenhuma posição”);[/code]
sem me dar conta de que mesmo que a primeira condição seja verdadeira, a segunda tbm vai ser exibida.
Pedi ajuda aqui no fórum e responderam que eu deveria fazer assim:
[code]for( i=0; i><p.length; i++){
if(p[ i ] ==30){
System.out.println("30 se encontra na posição " + i);
return;
}
}
System.out.println(“Não existe 30 em nenhuma posição”);
[/code]
Ou seja, que eu deveria usar o return. Mas os meus professores não ensinaram que eu poderia usar um return sem nada a seguir. Eles só explicaram que eu deveria usar return em métodos e dessa forma: return r, return m, return AlgumaCoisa.
Como então eu poderia adivinhar? Não vi isso nem nos livros. Só agora aprendi que posso usar return pra interromper um fluxo.
Então é ou não uma negligência por parte dos professores? Como eu posso aprender java de maneira correta, ter segurança ao fazer um exercício sem saber dessas particularidades do java? O jeito é perguntar mesmo nos fóruns, é assim que se aprende?>