//imprimi do 0 ao 10 inversamente (10 ao 0)
for (int i = 10; i < 11; --i) {
System.out.println(i);
}
pq não imprimi tipo: 9,8,7… 0
//imprimi do 0 ao 10 inversamente (10 ao 0)
for (int i = 10; i < 11; --i) {
System.out.println(i);
}
pq não imprimi tipo: 9,8,7… 0
ele vai imprimir algo assim:
10
9
8
7
6
5
4
3
2
1
0
-1
-2
-3
então faz assim:
for (int i = 10; i >= 0; --i) {
System.out.println(i);
}
quando vc faz de 0 a 10 :
for(int i =0 ; i < 11 ; i ++)
agora em decrescente vc tem que trocar o simbolo de maior para menor:
for(int i = 10; i>0 ; i--)
ops, de menor para maior
Tio, é por isso que acho que Java copiou certas coisas do C/C++ que não deveria ter copiado. Deveria ter copiado de outras linguagens. Por exemplo, há linguagens em que o “for” é assim:
(* Pascal ou Delphi - imprime 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 *)
for i := 1 to 10 do begin
WriteLn (i);
end;
(* Imprime 10, 9, 8, 7, 6, 5, 4, 3, 2, 1 *)
for i := 10 downto 1 do begin
WriteLn (i);
end
Há o “to” para contar para frente, e o “downto” para contar para trás.
Aqui você vê claramente que “to” conta do menor para o maior, de 1 em 1, e “downto” conta de trás para frente, de 1 em 1.
Obrigado gente…
[quote=entanglement]Tio, é por isso que acho que Java copiou certas coisas do C/C++ que não deveria ter copiado. Deveria ter copiado de outras linguagens. Por exemplo, há linguagens em que o “for” é assim:
(* Pascal ou Delphi - imprime 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 *)
for i := 1 to 10 do begin
WriteLn (i);
end;
(* Imprime 10, 9, 8, 7, 6, 5, 4, 3, 2, 1 *)
for i := 10 downto 1 do begin
WriteLn (i);
end
Há o “to” para contar para frente, e o “downto” para contar para trás.
Aqui você vê claramente que “to” conta do menor para o maior, de 1 em 1, e “downto” conta de trás para frente, de 1 em 1.
[/quote]
que estranho, sempre achei que a utilização da espressao matematica torna-se de melhor compreendimento, fora que diminui o tamanho do codico, mas no fundo e a mesma coisa, o que muda e a semantica naum e?
[quote=banger]
que estranho, sempre achei que a utilização da expressao matematica tornasse de melhor compreensão, fora que diminui o tamanho do código, mas no fundo é a mesma coisa, o que muda e a semantica naum é?[/quote]
for (int i = 1; i <= 10; ++i) {
...
Aqui eu repito o nome da variável 3 vezes, e ainda corro o risco de usar uma variável errada em algum dos 3 pontos do for, o que já me deu muitos problemas.
for (Iterator<String> it = colecao.iterator(); it.hasNext(); ) {
String s = it.next();
}
ou então:
for (int i = 1; i < 1000000; i *= 2) {
// este "for" imprime as potências de 2 menores que 1000000
ou sei lá que outras mágicas são possíveis usando-se o for.
Mas ele não é muito claro. Na verdade, a primeira vez que vi um código em C era algo parecido com isto aqui:
for (int i = 0; i < sizeof(array) / sizeof (array[0]); ++i) {
...
e achei abstruso* demais. Depois me acostumei…