Ajuda com uso do for

//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]

  1. Como é que diminui o tamanho do código? Acho é que aumenta, isso sim. Eu tenho, por exemplo, de repetir o nome da variável pelo menos 3 vezes:
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.

  1. A vantagem do for do C/C++/Java é que permite generalização, por exemplo:
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…

  • Por favor, consulte o dicionário de sua preferência.
  1. Semântica = significado; a semântica não muda, e sim a sintaxe.