Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.java.programmer > #9020

Re: A freshman's question

From whl <wanghailunmail@gmail.com>
Newsgroups comp.lang.java.programmer
Subject Re: A freshman's question
Date 2011-10-20 03:48 -0700
Organization http://groups.google.com
Message-ID <c2e89f37-a3b3-46ea-a0ec-64d9cb4d5f2a@u10g2000prl.googlegroups.com> (permalink)
References (1 earlier) <37KdnWZAYfIR1QPTnZ2dnUVZ_vWdnZ2d@earthlink.com> <02a66b06-651a-46c8-9a09-64442a73a959@s17g2000prm.googlegroups.com> <F4mdnVWUC_HXFQPTnZ2dnUVZ_oednZ2d@earthlink.com> <4df1e05a-295c-4c60-9baf-0e69cd4ee507@r2g2000prh.googlegroups.com> <17976081.108.1319043493265.JavaMail.geo-discussion-forums@yqjh13>

Show all headers | View raw


On 10月20日, 上午12时58分, Lew <lewbl...@gmail.com> wrote:
> whl wrote:
> > Patricia Shanahan wrote:
> >> whl wrote:
> >>> Patricia Shanahan wrote:
> >> >> whl wrote:
> >>>>> ======start=========
> >>>>>        public class Inc{
> >>>>> public static void main(String argv[]){
> >>>>>                 Inc inc = new Inc();
> >>>>>                 int i =0;
> >>>>>                 inc.fermin(i);
> >>>>>                 i = i++;
> >>>>>                 System.out.println(i);
> >>>>>         }
> >>>>>         void fermin(int i){
> >>>>>                 i++;
> >>>>>         }
> >>>>> }
> >>>>> ========end========
> >>>>> I think the result is 1,but the real result is 0. I don't kown the
> >>>>> statement i=i++ operation sequence.  In my opinion , variable i's
> >>>>> values is 0,then i++ ,the variable i's values is 1. They share a
> >>>>> common memory space,the variable i should change the values.
> >>>> The i=i++ operation sequence is:
>
> >>>> 1. Evaluate i++. It has the side effect of incrementing i to 1, but has
> >>>> as result the old value of i, 0.
>
> >>>> 2. Do the assignment. This sets the left hand side, i, equal to the
> >>>> result of the right hand side, 0.
>
> >>>> In theory, i does change to 1, but immediately changes back to 0. In
> >>>> practice, the change in i's value might get optimized out. The effect of
> >>>> i=i++ is to leave i unchanged.
>
> >>> so ,thank you for you answer my question ,I just don't know the
> >>> variable i is share the common memory space and when the left hand
> >>> side ,i ,equal to the result of the right hand side ,0,then ,i
> >>> increase to 1,so ,in the memory ,the variable i's value should be 1.if
> >>> change the expression i=i++ to i++,the result is 1.
>
> >> Look again at what I wrote.
>
> >> During step 1, at least in theory, i changes from 0 to 1. If the entire
> >> statement is "i++;" that is the value of i for later statements. The 0
> >> result of evaluating i++ is not used.
>
> >> In the original case, step 2 makes i equal to the value of the right
> >> hand side, 0, and that is the value of i for later statements.
>
> > Thank you for your explanation in patience, maybe my English is very
> > terrible,I don't understand all of your meaning. your meaning is when
> > the variable i on the right hand side is assigned 0,then ,the
> > statement "i++" don't execute,and start print?
>
> No.
>
> The "i++" *does* execute.  ("print" has nothing to do with this yet.)
>
> What is the value of 'i++'?
>
> Let's just look at two lines of code.
>
> int i = 0;
> int x = i++;
>
> What is the value of 'x' after its initialization?
>
> Zero!
>
> Why?
>
> Because the value of a post-increment expression - that means the '++' is to the right of the variable - is the value of the variable before the increment.
>
> This is very, very basic.
>
> The value of post-increment (and of post-decrement) is the variable's value *before* the operation.
>
> Before.
>
> Not after.
>
> The pre-increment version, where the operator is to the left of the variable, is the value after the increment.
>
> So in this snippet:
>
> int i = 0, j = 0;
> int x = i++;
> int y = ++j;
>
> the value of 'x' will become zero, and the value of 'y' will become one.
>
> --
> Lew

thank you ,now ,I think this is a very simple question,I understand
all of your answer,maybe I put this complicated matters!

Back to comp.lang.java.programmer | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

A freshman's question whl <wanghailunmail@gmail.com> - 2011-10-18 20:08 -0700
  Re: A freshman's question Patricia Shanahan <pats@acm.org> - 2011-10-19 04:48 +0100
    Re: A freshman's question whl <wanghailunmail@gmail.com> - 2011-10-19 00:54 -0700
      Re: A freshman's question Patricia Shanahan <pats@acm.org> - 2011-10-19 09:20 +0100
        Re: A freshman's question whl <wanghailunmail@gmail.com> - 2011-10-19 03:38 -0700
          Re: A freshman's question Lars Enderin <lars.enderin@telia.com> - 2011-10-19 17:48 +0200
            Re: A freshman's question Tim Slattery <Slattery_T@bls.gov> - 2011-10-19 12:24 -0400
              Re: A freshman's question whl <wanghailunmail@gmail.com> - 2011-10-20 03:55 -0700
            Re: A freshman's question whl <wanghailunmail@gmail.com> - 2011-10-20 03:50 -0700
          Re: A freshman's question Lew <lewbloch@gmail.com> - 2011-10-19 09:58 -0700
            Re: A freshman's question Patricia Shanahan <pats@acm.org> - 2011-10-19 18:47 +0100
            Re: A freshman's question whl <wanghailunmail@gmail.com> - 2011-10-20 03:48 -0700
        Re: A freshman's question whl <wanghailunmail@gmail.com> - 2011-10-19 03:49 -0700
          Re: A freshman's question Patricia Shanahan <pats@acm.org> - 2011-10-19 18:58 +0100
            Re: A freshman's question whl <wanghailunmail@gmail.com> - 2011-10-20 02:13 -0700
      Re: A freshman's question Arved Sandstrom <asandstrom3minus1@eastlink.ca> - 2011-10-19 06:05 -0300
        Re: A freshman's question whl <wanghailunmail@gmail.com> - 2011-10-19 03:38 -0700
    Re: A freshman's question Travers Naran <tnaran@gmail.com> - 2011-10-20 07:30 -0700
      Re: A freshman's question Gene Wirchenko <genew@ocis.net> - 2011-10-20 10:08 -0700
        Re: A freshman's question Patricia Shanahan <pats@acm.org> - 2011-10-20 18:22 +0100
        Re: A freshman's question Lew <lewbloch@gmail.com> - 2011-10-20 13:59 -0700
        Re: A freshman's question Joshua Cranmer <Pidgeot18@verizon.invalid> - 2011-10-20 17:38 -0500
  Re: A freshman's question Roedy Green <see_website@mindprod.com.invalid> - 2011-10-19 23:56 -0700
    Re: A freshman's question whl <wanghailunmail@gmail.com> - 2011-10-20 03:55 -0700

csiph-web