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

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:
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: