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