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:
• Campbell Ritchie
• Jeanne Boyarsky
• Ron McLeod
• Paul Clapham
• Liutauras Vilda
Sheriffs:
• paul wheaton
• Rob Spoor
• Devaka Cooray
Saloon Keepers:
• Stephan van Hulst
• Tim Holloway
• Carey Brown
• Frits Walraven
• Tim Moores
Bartenders:
• Mikalai Zaikin

# Doubt from Whizlab Question

Greenhorn
Posts: 19
• Number of slices to send:
Optional 'thank-you' note:
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
• Number of slices to send:
Optional 'thank-you' note:
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
• Number of slices to send:
Optional 'thank-you' note:
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
• Number of slices to send:
Optional 'thank-you' note:
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
• Number of slices to send:
Optional 'thank-you' note:
Thanks for all your reply.I have understood it now.Thanks a lot

 Consider Paul's rocket mass heater.
reply
Similar Threads