• 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
  • Jeanne Boyarsky
  • Ron McLeod
  • Liutauras Vilda
Sheriffs:
  • Rob Spoor
  • Junilu Lacar
  • paul wheaton
Saloon Keepers:
  • Stephan van Hulst
  • Tim Moores
  • Tim Holloway
  • Carey Brown
  • Scott Selikoff
Bartenders:
  • Piet Souris
  • Jj Roberts
  • fred rosenberger

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
 
pie. tiny ad:
Building a Better World in your Backyard by Paul Wheaton and Shawn Klassen-Koop
https://coderanch.com/wiki/718759/books/Building-World-Backyard-Paul-Wheaton
reply
    Bookmark Topic Watch Topic
  • New Topic