da sim, o problema ficou na sua decaração o correto é:
for(intvar1=1,var2=2;var1<var2;var1++,var2--){}
M
m-bax
Hmm… Mas isso limita bastante. Se eu quiser criar, por exemplo, var2 como double?
aix
e porque não pode usar 2 for?
ou porque não pode usa-los encadeados?
ou porque não utiliza outro tipo de condiçao como switchcase ou whyle?
o que você quer fazer ? você pode declarar outros tipos fora do corpo e pode usar na expressão condicional ex:
doublenum=100.0d;booleanisPrime=true;for(inti=1; i < num; i ++) {}
se tem uma coisa que o java não faz é te limitar
S
spidermanx
Limitado por limitado, declarar as variáveis dentro do laço (exceto o indice padrão) te limitará do mesmo jeito, independentemente do tipo (int, double, float, etc) concorda?
ViniGodoy
Se você está pensando em declarar mais de uma variável dentro do for, está pensando em criar um código confuso, sujeito a erros e, portanto, pensando em fazer kgada.
Em programação, nem sempre o que você pode fazer é o que você deve fazer.
T
Tiago_Bevilaqua
Cara se for o caso: as vezes é usado um for dentro de outro. Mas sinceramente é a primeira vez que vi alguém tentando fazer isso.
Sem contar que se algum dia alguém pegar essa código para altera-lo vishhhhh complicou.
Quanto mais limpo e sucinto o código melhor.
ViniGodoy
É bem diferente criar 2 variáveis num for e criar um for dentro de outro. Geralmente, 2 variáveis funciona como se vc tivesse declarado uma variável fora do for, e em seguida, a adicionasse dentro.
Costumo declarar 2 variáveis no for, quando a condição de parada do for é lenta para ser calculada. Por exemplo:
NodeListnodeList=...;for(inti=0,n=nodeList.getLength(); i < n; i++) {Nodenode=nodeList.item(i);...
}
Neste caso não sei se getLength() no caso da classe que implementa org.w3c.dom.NodeList é lenta ou rápida. Para evitar chamar getLength a cada iteração do loop, eu uso a construção acima para chamar getLength() apenas uma vez.
sergiotaborda
É de proposito.
O que vc quer fazer não é uma iteração. Não é um for. É uma repetição (um while)
Para que isto serve ? Não importa, mas o que vc está fazendo é saber onde var1 e var 2 convergem. Na realidade vc está calculando var2-var1 da forma mais dificil.
E é por isso que a sintaxe não aguenta. Vc não está usando os conceitos corretos.
ViniGodoy
Isso é bem interessante. De qualquer forma, seu controle está sempre sobre uma variável só, não em cima de duas… quando aparece mais de um contador é que as coisas ficam tenebrosas.
sergiotaborda
entanglement:
Costumo declarar 2 variáveis no for, quando a condição de parada do for é lenta para ser calculada. Por exemplo:
NodeListnodeList=...;for(inti=0,n=nodeList.getLength(); i < n; i++) {Nodenode=nodeList.item(i);...
}
Neste caso não sei se getLength() no caso da classe que implementa org.w3c.dom.NodeList é lenta ou rápida. Para evitar chamar getLength a cada iteração do loop, eu uso a construção acima para chamar getLength() apenas uma vez.
Para evitar chamar o método a cada iteração … você não chama! ora…
NodeListnodeList=...;finalintsize=nodeList.getLength();for(inti=0; i < size; i++) {Nodenode=nodeList.item(i);...
}
Pronto. É a mesma coisas. Mas é mais fácil de ler. Sem subterfúgios linguísticos sinistros e usando final vc deixa claro que é uma variável auxiliar ( e que não mudará duante o for, o que é importante)
ViniGodoy
A diferença é que no caso do Entanglement, a variável size não sai do escopo do for. A sua está fora do escopo, e sobrevive ao for.
Não é um grande problema se vc fatora corretamente o código e se seus métodos são suficientemente curtos.