Pessoal qual a diferença na prática de usar no for operador ++i ou i++, fiz um exemplo e não vir diferença
for(int i = 1; i<=3; i++){
System.out.println(i);
}
for(int i = 1; i<=3; ++i){
System.out.println(i);
}
O resultado é o mesmo
Rode esses 2 métodos e veja se percebe a diferença:public static void preIncremento(){
int i = 10;
System.out.println(++i);
System.out.println(i);
}
public static void posIncremento(){
int i = 10;
System.out.println(i++);
System.out.println(i);
}
Esse da diferença, o que estou dizendo é que no for me parecer que isso não faz diferença entende ?
tanto faz você colocar i++ ou i++ = é como se isso não tivesse valendo para o for
entende ?
No for não vai ter diferença nenhuma, a não ser que você realize alguma operação no terceiro argumento do laço.
Como assim realizar operação, poderia me explicar ?
[code]public static void main(String[] args){
int contador = 0;
for(int i = 0 ; i < 10 ; contador = i++){
}
System.out.println(contador);
}[/code]Algo como o exemplo acima. Se você alterar para pré-incremento, aí terá uma alteração no valor final.
Não consigo pensar em um exemplo prático para isso, mas é só naquele bloco de código do for que fará diferença o incremento ser pré ou pós.
[quote=Rodrigo Sasaki][code]public static void main(String[] args){
int contador = 0;
for(int i = 0 ; i < 10 ; contador = i++){
}
System.out.println(contador);
}[/code]Algo como o exemplo acima. Se você alterar para pré-incremento, aí terá uma alteração no valor final.
Não consigo pensar em um exemplo prático para isso, mas é só naquele bloco de código do for que fará diferença o incremento ser pré ou pós.[/quote]
É verdade, acho q é só naquele exato momento ali
a questão e simples na verdade,
o pre-incremento executa o o incremento antes da linhas, o pos-descremento o faz ao final;
int x = 5;
System.out.println(x++);
//vai mostrar 5, porque ira imprimir antes de incrementar
// no entando apos essa linha o valor de x ja será 6
System.out.println(++x);
//vai mostrar 7, porque era incrementar antes de imprimir
percebeu a diferenca?
existem alguns calculos que isso pode realmente fazer a diferenca
Salve,
Cara eu não sei se sua duvida é refente ao pós e pre incremento ou o laço for.
no laço for de fato não ira ter qualquer diferença você utilizar pós e pre incremento como disse o Rodrigo Sasaki,
Eu também não sei se você conhece o laço for mas ele não é divido em:
for(inicialização de variável; teste da variável; incremento da variável) como é o comum utilizar
o for é dividido em
for(operação executada ao inicio do for; operação que retorna um booleano para continuação do laço; operação executada a cada instrução do laço)
eu sei que parece que eu estou só falando o que você já sabe mas a diferença na pratica é a seguinte:
O uso comum do for é:
Uma forma incomum mas valida é:
int i = 0;
for(System.out.println("Inicio do laco");i<=10;System.out.printf("Executando laco: %d\n",i++))
Neste segundo caso acontece o que o Rodrigo Sasaki havia dito de executar alguma operação com o terceiro argumento
Espero ter ajudado Abraço
Uma forma muito boa de você entender o que acontece, sem precisar de decorar, é aprender que o loop “for” é na verdade uma abreviação de um “while”. Se aprender isso, vai ver que é trivial entender por que é que, nesse caso, tanto faz usar “i++” ou “++i” que o resultado vai ser exatamente o mesmo.
O seguinte laço “for”:
for (A ; B; C) {
D;
E;
}
equivale ao seguinte laço “while”:
{
A;
while (B) {
D;
E;
C;
}
}
Por exemplo:
for (String linha = br.readLine(); linha != null; linha = br.readLine()) {
System.out.println (linha);
}
equivale a:
{
String linha = br.readLine();
while (linha != null) {
System.out.println (linha);
linha = br.readLine();
}
}
(Há um caso particular onde se omite a condição, ou “B” no exemplo acima. Nesse caso, B é considerado como se fosse “true”. )