java - 如何在另一个方法中使用一个方法的值?
问题描述
我正在尝试编写一个程序来生成一个随机的 3 位数字并将其反转,所以我写了两个方法,其中 getRandomNum 生成数字,reverseDigits 反转它。但是,第二种方法不接受第一种方法生成的随机数,因为第一种方法显示一个 3 位数字,但第二种方法在运行代码时显示 0。
我尝试查找如何在方法之间共享变量,似乎我需要在方法之外使用静态变量。但是对于 reverseDigits,它仍然显示 0。
我错过了什么还是有其他事情要做?
public class MathTrick
{
static int upperBound = 999;
static int lowerBound = 100;
//generate random 3 digit number
static int getRandomNumber = 0;
static int mDifference = 0;
public static void main(String[]args)
{
getRandomNum();
reverseDigits();
}
static void getRandomNum()
{
int upperBound = 999;
int lowerBound = 100;
//generate random 3 digit number
int getRandomNumber = 0;
int mDifference = 0;
while (mDifference <= 1)
{
getRandomNumber = (int)(Math.random()*((upperBound-lowerBound)+1)) + lowerBound + 1;
int x = (int)(getRandomNumber/100);
int y = getRandomNumber%10;
mDifference = Math.abs(x-y);
}
int m = getRandomNumber;
}
static int m = getRandomNumber;
static void reverseDigits()
{
int a = m, reverseDigits = 0;
while (a != 0)
{
int remainder = a % 10;
reverseDigits = reverseDigits * 10 + remainder;
a = a / 10;
}
int n = reverseDigits;
}
}
解决方案
直接回答你的问题
将此行替换int m = getRandomNumber;
为m = getRandomNumber;
m
基本上,您用局部变量掩盖了静态变量int m
。
一些变化,这里是(我的建议)。
更改为返回整数的两种方法都getRandomNum
返回一个新的随机数,并且该reverseDigits
方法返回反转数。此外,reverseDigits
获取一个参数 - 一个应该更改的数字。
所以,修改后。
public static void main(String[] args) {
int randomNum = getRandomNum();
int reverse = reverseDigits(randomNum);
System.out.println(randomNum);
System.out.println(reverse);
}
static int getRandomNum() {
//
return getRandomNumber;
}
static int reverseDigits(int m) {
//
return reverseDigits;
}
您可以删除其他静态字段。
推荐阅读
- android - 使用 SharedPreferences 存储数据
- javascript - 如何在苗条框架的树枝视图中包含外部 css 和 javascript 文件
- ruby-on-rails - 基于模型属性的 StateMachine 转换
- python - 使用 python GDAL API 创建栅格的空副本
- corda - Gradle 任务执行失败 org.gradle.api.GradleException:无效距离太远
- html - 如何根据窗口高度使元素滚动或居中
- twitter-bootstrap - Bootstrap 4中包含两行的表单
- neo4j - Neo4J - Cypher:通过多个标签的多个节点的 allShortestPaths
- vba - 使用复制函数 VBA 时应用程序定义或对象定义的错误
- c# - 最小化或背景时的 UWP/C# 后台下载器