• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Tim Cooke
  • Campbell Ritchie
  • paul wheaton
  • Jeanne Boyarsky
  • Ron McLeod
Sheriffs:
  • Paul Clapham
  • Devaka Cooray
Saloon Keepers:
  • Tim Holloway
  • Carey Brown
  • Piet Souris
Bartenders:

Doubt from Whizlab Question

 
Greenhorn
Posts: 19
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
can anyone please explain me why the output is 3.And x-- should be 0.since it changes to 1 only in next place of x right ,as it is a post increment..Am i right ...Please explain this.

public class sample12 {

static{
int x=5;
}
static int x,y;

public static void main(String[] args) {

x--;
myMethod();
System.out.println(x+y + ++x);

}
public static void myMethod(){
y=x++ + ++x;
}
}
 
Ranch Hand
Posts: 447
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Hi


public class sample12 {

static{
int x=5;
}
static int x,y;//Default values are x=0,y=0

public static void main(String[] args) {

x--;
myMethod();//At this statement the value of x is -1 and y =0
System.out.println(x+y + ++x);//here 1+0+2
so output is 3

}
public static void myMethod(){
y=x++ + ++x;// at this statement y=-1+1
so y=0;but x=1;
because here x is incremeted twice
}
}


Thanks

Anil Kumar
 
Ranch Hand
Posts: 113
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
hi
when code enter mymethod the value of x is -1

y=x++ + ++x;
x++->the value of x is read first as -1 and then incremented to 0.
++x->the value of x is first incremented to 1 and then read.
therefore the value of x is 1.
now y= -1+1=0
and x=1
now x+ y+ ++x
first expression are evaluated and then addition take place
++x->the value of x is first incremented to 2 and then read.
now x+y+++x = 1+0+2=3
 
Greenhorn
Posts: 16
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
here is solution see comments
public class sample12 {

static{
int x=5;
}
static int x,y;;

public static void main(String[] args) {

x--; //x=-1 here because before this statement x=0(default value)
myMethod();
System.out.println(x+y + ++x);//here (x+y ++x)(1+0+2)and prints 3

}
public static void myMethod(){
y=x++ + ++x; //here y=-1+1 which is zero; and x becomes 1
}
}
 
cfish meena
Greenhorn
Posts: 19
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Thanks for all your reply.I have understood it now.Thanks a lot
 
With a little knowledge, a cast iron skillet is non-stick and lasts a lifetime.
reply
    Bookmark Topic Watch Topic
  • New Topic