java - 如何从方法变量中清除以前存储的值

标签 java

每当我打印 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;
           }

       }



最佳答案

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

关于java - 如何从方法变量中清除以前存储的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54503615/

相关文章:

java - 在 Java、Play Framework 2.2.1 中 Gzip 文件

java - 如何解决 "an enclosing instance that contains X.Y is required"?

java - Apache Tomcat 7 无法启动

java - 为什么这些类必须在另一个类中?

java - 来自数据库表的 i18N 消息 - java spring 3.0

java - 在 Android 中显示/隐藏 WebView

java - Java 的 System.out.print() 会一直缓冲到 println() 吗?

java - 修改对象的字段

java - 在类路径中找不到类

java - java程序在eclipse IDE中编译错误