Reputation: 3
whenever i print value of sev it also print rev first why is that what i am missing for rev i/p 456 it gives properly as expected 654 but in next step for 789 it gives 456987 how do i get correct answer
public static void main(String []args){
int num1=0;
int num2 =0;
int rev = namo(num1);
System.out.println(rev);
int sev = namo(num2);
System.out.println(sev);
}
static Scanner sc = new Scanner(System.in);
static int rev_num = 0;
public static int namo(int m) {
m = sc.nextInt();
while (m!= 0) {
rev_num = rev_num * 10 + m % 10;
m = m / 10;
}
return rev_num;
}
}
Upvotes: 0
Views: 445
Reputation: 315
rev_num is static variable and not methode variable, so you need to initialize it to zero inside methode.
more on static variable: https://beginnersbook.com/2013/05/static-variable/
public static int namo(int m) {
rev_num = 0;
m = sc.nextInt();
while (m!= 0) {
rev_num = rev_num * 10 + m % 10;
m = m / 10;
}
return rev_num;
}
and rather than declaring,
static int rev_num = 0;
outside method you can declare that inside method itself,
public static int namo(int m) {
int rev_num = 0;
m = sc.nextInt();
while (m!= 0) {
rev_num = rev_num * 10 + m % 10;
m = m / 10;
}
return rev_num;
}
Upvotes: 1