Rahul Sargar
Rahul Sargar

Reputation: 3

how to clear previous stored value from method variable

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

Answers (1)

dhanu10896
dhanu10896

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

Related Questions