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;
}
推荐阅读
- javascript - 将路径添加到 JSON 属性
- arrays - React 如何使用数组
- c - 发送参数地址是否安全?
- jquery - 在 jQuery .animate 中使用 css 变量
- oracle - 如何在 oracle 中增加数据库网络数据包大小
- javascript - 将来自 API 的 img 显示为 Stream
- assembly - Mips:在 2 行中打印多个值
- regex - 用于重复数字系列和数字范围的正则表达式(例如 3 位数字和 3 位数字范围)
- elasticsearch - 如何限制对弹性搜索中的文档的访问?
- flutter - 如何在 Flutter 中将数据存储为对象