首页 > 解决方案 > 如何从方法变量中清除以前存储的值

问题描述

每当我打印 sev 的值时,它也会首先打印 rev 为什么我缺少rev i/p 456 它按预期正确给出了 654 但在下一步中为 789 它给出了 456987 我如何得到正确的答案

    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;
           }

       }



标签: java

解决方案


rev_num 是静态变量而不是方法变量,因此您需要在方法中将其初始化为零。
更多关于静态变量: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;
}

而不是声明,

    static int rev_num = 0; 

外部方法,您可以声明内部方法本身,

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;
}

推荐阅读