Galera, isto ainda está gerando duvida, heim!
Mas, lembrei-me do tempo da faculdade quando vi a explicacao para isto: i = 0 i = i++ Inicialmente, o compilador ve a atribuicao de 0 para i, e reserva esta atribuicao, porém, ele executa um incremento em i, antes de atribuir o zero para o i. É estranho, mas foi esta a explicacao que eu vi. ----- Original Message ----- From: "Luiz Reginaldo" <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]> Sent: Monday, March 11, 2002 9:12 AM Subject: Re: [java-list] código obscuro!! > Silvio, > > Troque a atribuição i= i++ por algo como a= i++. Não utilize a mesma > variável na atribuição. > > ----- Original Message ----- > From: Silvio L. DeMorais <[EMAIL PROTECTED]> > To: <[EMAIL PROTECTED]> > Sent: Tuesday, March 05, 2002 4:57 PM > Subject: Re: [java-list] código obscuro!! > > > > Caramba... esse troco estah gerando um monte de conversa mesmo. > > Resolvi dar uma testada nesse negocio. > > > > Testei nos seguintes compiladores C/C++ > > Compilador C/C++ padrao do Sistema HP (Unix) > > gcc compiler no Linux (RedHat 7.2) rodando em PC Intel > > Compilador C/C++ padrao do Sistema Cray (Cray T-3E) > > > > > > E as seguintes JVM's > > > > JDK 1.1.8 Sun > > JDK 1.2.2 Sun > > JDK 1.3.1_02 Sun > > JDK 1.4 Sun todos rodando em PC's Intel com Windows NT 4.0 SP 6 > > > > JDK 1.3.0 instalada num HP (Unix) > > > > > > Nao testei com JDK 1.0 porque nao tenho aqui no escritorio. > > > > Os testes foram os seguintes: > > para Java > > > > class PlusPlusADireitaRetornaZero > > > > public static void main (String[] a) > > { > > int i = 0; > > i = i++; > > System.out.println(i); > > } > > > > > > > > Para C > > > > #include <stdio.h> > > int main () > > > > int i = 0; > > i = i++; > > fprintf("%i \n", i); > > > > > > Para C++ (que eh a mesma coisa, no caso, mas... ) > > > > #include <iostream> > > int main () > > > > int i = 0; > > i = i++; > > cout << i << '\n'; > > > > > > > > Resultados: zero, sempre zero, jamais algo diferente de zero. Em todas as > > plataformas/linguagens. > > Ainda estou para ver uma situacao que retorne UM. > > Me digam qual o caso que retorna 1, mas mandem completo: > > Compilador, versao do compilador, SO, versao do SO, SP aplicados (se > algum), > > plataforma de hardware usada (PC Intel, PC AMD, HP, ...). > > > > Silvio > > > > > > > > > > > > > > On Mon, 04 March 2002, Carlos Villela wrote > > > > > > > > Ate' agora, eu so vi programas deste tipo implementados em C/C++ > > > resultarem em 1 (nos compiladores gcc e turboc-4.5) e implementacoes em > > > Java retornarem 0 (nas jdks 1.3 e 1.4 da sun, jdk 1.3 da ibm). Em quais > > > compiladores/JVMs vc viu este comportamento mudar? > > > > > > Sven van ´t Veer wrote: > > > > > > > Não tem, até diversas compiladores C++ tem comportamento diferente, e > > > > parece diversas JVM também tem comportamento diferente. > > > > > > > > csuco wrote: > > > > > > > >>o codigo em C ou C++... > > > >> > > > >>int main() { > > > >> int i = 0; > > > >> i = i++; > > > >> fprintf (stdou,"i = %ld",i); > > > >>} > > > >> > > > >> > > > >>teria exatamente o mesmo comportamento! > > > >> > > > >> > > > >>Clebert > > > >> > > > >> > > > >> > > > >>>---------- Mensagem original ----------- > > > >>> > > > >>>De : Agnelo de Jesus <[EMAIL PROTECTED]> > > > >>>Para : [EMAIL PROTECTED] > > > >>>Cc : > > > >>>Data : Wed, 27 Feb 2002 09:05:45 -0300 > > > >>>Assunto : Re: [java-list] código obscuro!! > > > >>> > > > >>>Caro Cristiano, > > > >>> > > > >>>Quando você utiliza o incremento à direita do número,(i++), você > > > >>> > > > >>primeiro > > > >> > > > >>>retorna o número e depois soma 1. > > > >>>Para você fazer aquilo que pretendia,(não existe necessidade), você > > > >>> > > > >>deveria > > > >> > > > >>>utilizar o incremento à esquerda do número (++i). > > > >>>Isto vale também para a linguagem C++, verifique se o que você > > > >>> > > > >>afirmou > > > >> > > > >>>realmente ocorre, o que seria verdadeiramente obscuro :). > > > >>> > > > >>>Espero ter ajudado > > > >>>[]s, > > > >>> > > > >>>Agnelo de Jesus. > > > >>> > > > >>>{ > > > >>> int i = 0; > > > >>> i = i++; > > > >>> System.out.println(i); > > > >>>} > > > >>> > > > >>> > > > >>> > > > >>> > > > >>> > > > >>> > > > >>>Em 26 Feb 2002, [EMAIL PROTECTED] escreveu: > > > >>> > > > >>>>Oi lista, > > > >>>> > > > >>>>Alguém pode explicar porque a seguinte implementação retorna 0 > > > >>>> > > > >>(zero)? > > > >> > > > >>>>{ > > > >>>>int i = 0; > > > >>>>i = i++; > > > >>>>System.out.println(i); > > > >>>>} > > > >>>> > > > >>>>Não seria mais 'lógico' retornar 1, como em C++ ? > > > >>>> > > > >>>>Abraços, > > > >>>> > > > >>>>CristianoBS > > > >>>> > > > >>>>------------------------------ LISTA SOUJAVA ---------------------- > > > >>>> > > > >>------ > > > >> > > > >>>>http://www.soujava.org.br - Sociedade de Usuários Java da Sucesu- > > > >>>> > > > >>SP > > > >> > > > >>>>dúvidas mais comuns: http://www.soujava.org.br/faq.htm > > > >>>>regras da lista: http://www.soujava.org.br/regras.htm > > > >>>>historico: http://www.mail-archive.com/java-list%40soujava.org.br > > > >>>>para sair da lista: envie email para java-list- > > > >>>> > > > >>[EMAIL PROTECTED] > > > >> > > > >>>>------------------------------------------------------------------- > > > >>>> > > > >>------ > > > >> > > > >>>>---------- > > > >>>> > > > >>> > > > >>> > > > >>> Agnelo de Jesus. > > > >>> > > > >>>_________________________________________________________ > > > >>>Oi! Você quer um iG-mail gratuito? > > > >>>Então clique aqui: http://registro.ig.com.br/censo/igmail > > > >>> > > > >>> > > > >>>------------------------------ LISTA SOUJAVA ----------------------- > > > >>> > > > >>----- > > > >> > > > >>>http://www.soujava.org.br - Sociedade de Usuários Java da Sucesu- > > > >>> > > > >>SP > > > >> > > > >>>dúvidas mais comuns: http://www.soujava.org.br/faq.htm > > > >>>regras da lista: http://www.soujava.org.br/regras.htm > > > >>>historico: http://www.mail-archive.com/java-list%40soujava.org.br > > > >>>para sair da lista: envie email para java-list- > > > >>> > > > >>[EMAIL PROTECTED] > > > >> > > > >>>-------------------------------------------------------------------- > > > >>> > > > >>----- > > > >> > > > >>> > > > >>> > > > >> > > > >> > > > >>------------------------------ LISTA > SOUJAVA ---------------------------- > > > >>http://www.soujava.org.br - Sociedade de Usuários Java da Sucesu-SP > > > >>dúvidas mais comuns: http://www.soujava.org.br/faq.htm > > > >>regras da lista: http://www.soujava.org.br/regras.htm > > > >>historico: http://www.mail-archive.com/java-list%40soujava.org.br > > > >>para sair da lista: envie email para > [EMAIL PROTECTED] > > > > >>-------------------------------------------------------------------------< > > > >>br> > > > >> > > > > > > > >-- > > > >"'You guys (at Microsoft) still don't get it,' > > > >because it's sort of Java with reliability, productivity and security > > deleted." > > > > > > > > James Gosling > > > > > > > > > > > > > > > > > > > > > > > ------------------------------ LISTA > SOUJAVA ---------------------------- > > > http://www.soujava.org.br - Sociedade de Usuários Java da Sucesu-SP > > > dúvidas mais comuns: http://www.soujava.org.br/faq.htm > > > regras da lista: http://www.soujava.org.br/regras.htm > > > historico: http://www.mail-archive.com/java-list%40soujava.org.br > > > para sair da lista: envie email para > [EMAIL PROTECTED] > > > > ------------------------------------------------------------------------- > > > > > > > > ------------------------------ LISTA SOUJAVA ---------------------------- > > http://www.soujava.org.br - Sociedade de Usuários Java da Sucesu-SP > > dúvidas mais comuns: http://www.soujava.org.br/faq.htm > > regras da lista: http://www.soujava.org.br/regras.htm > > historico: http://www.mail-archive.com/java-list%40soujava.org.br > > para sair da lista: envie email para [EMAIL PROTECTED] > > ------------------------------------------------------------------------- > > > > > ------------------------------ LISTA SOUJAVA ---------------------------- > http://www.soujava.org.br - Sociedade de Usuários Java da Sucesu-SP > dúvidas mais comuns: http://www.soujava.org.br/faq.htm > regras da lista: http://www.soujava.org.br/regras.htm > historico: http://www.mail-archive.com/java-list%40soujava.org.br > para sair da lista: envie email para [EMAIL PROTECTED] > ------------------------------------------------------------------------- > --- Outgoing mail is certified Virus Free. Checked by AVG anti-virus system (http://www.grisoft.com). Version: 6.0.333 / Virus Database: 187 - Release Date: 08/03/2002 ------------------------------ LISTA SOUJAVA ---------------------------- http://www.soujava.org.br - Sociedade de Usuários Java da Sucesu-SP dúvidas mais comuns: http://www.soujava.org.br/faq.htm regras da lista: http://www.soujava.org.br/regras.htm historico: http://www.mail-archive.com/java-list%40soujava.org.br para sair da lista: envie email para [EMAIL PROTECTED] -------------------------------------------------------------------------