我目前正在用Java创建一个小应用程序。但是,我现在卡住了。我无法从一种方法捕获返回值到另一种方法。
以下是我返回值以及我想要捕获它的示例:
public int[] highest(int y[]){
int largest = 500;
int largeArr[] = new int[y.length];
for(int count = 0; count < y.length; count++)
{
if(y[count] >= largest){
largeArr[count] = y[count];
System.out.print(largeArr[count] + " ");
}
}
return largeArr;
}
public void highText()
{
RandomNumbers high = new RandomNumbers();
System.out.println("\nDessa tal är " + high.highest() + " intervallet 500 - 999: ");
}
我很清楚我应该利用参数和参数。但是当我想在以后打印文本时,这对我来说就成了一个问题
整个代码:
RandomNumbers rnd = new RandomNumbers();
rnd.highText();
rnd.highest(nummer);
import java.util.Scanner;
public class RandomNumbers {
public void rnd(int y[]){
for(int count = 0; count < y.length; count++)
{
y[count] = (int) ( Math.random()*1000);
System.out.print(y[count] + " ");
}
}
public int[] lowest(int y[]){
int largest = 499;
int smallArr[] = new int[y.length];
for(int count = 0; count < y.length; count++)
{
if(y[count] <= largest){
smallArr[count] = y[count];
System.out.print(smallArr[count] + " ");
}
}
return smallArr;
}
public int[] highest(int y[]){
int largest = 500;
int largeArr[] = new int[y.length];
for(int count = 0; count < y.length; count++)
{
if(y[count] >= largest){
largeArr[count] = y[count];
System.out.print(largeArr[count] + " ");
}
}
return largeArr;
}
public void highText()
{
RandomNumbers high = new RandomNumbers();
System.out.println("\nDessa tal är " + high.highest() + " intervallet 500 - 999: ");
}
public void lowText()
{
System.out.println("\nDessa " + smallArr + " tal är i intervallet 0 - 499: ");
}
public static void main(String[] args) {
Scanner user_input = new Scanner(System.in);
System.out.print("Hur många slumptal i intervallet 0-999 önskas? ");
int x = user_input.nextInt();
int nummer[] = new int[x];
RandomNumbers rnd = new RandomNumbers();
System.out.println("\nHär är de slumpade talen: ");
rnd.rnd(nummer);
rnd.lowText();
rnd.lowest(nummer);
rnd.highText();
rnd.highest(nummer);
}
}
当我打印文本时,我使用方法rnd.highText();.如果我以前在参数中使用largeArr,那么程序请求参数 - 当我真的只想打印方法时:(
请帮助=)
答案 0 :(得分:0)
我不知道我是否理解你想要的东西但...... 如果你想从你已经计算过的方法旧值中写入,你必须将它保存到全局变量中,或者以其他方式从方法外部访问她。只是写出结果你有两个选择。你可以在调用方法null时传递参数,只需检查参数,如果为null,你可以编写旧结果(如果有的话)(你应该拥有它)。 所以电话会是:
rnd.highText(空);
改变的方法是:
int largeArr[];
public int[] highest(int y[]){
if(y!=null)
{
int largest = 500;
largeArr[] = new int[y.length];
for(int count = 0; count < y.length; count++)
{
if(y[count] >= largest){
largeArr[count] = y[count];
System.out.print(largeArr[count] + " ");
}
}
}
return largeArr;
}
另一种实现此方法的方法是创建另一个不带非参数的方法(具有相同的名称)。但只需写出最高或最喜欢的元素的保存版本。在每种情况下,你需要将结果保存在一些变量中,因为现在在方法结束后你会丢失结果,并且无法将它返回到你调用方法agan的unles。我希望你明白我要告诉你的事情。