0

我目前正在用 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,那么程序请求参数 - 当我真的只想打印方法时:(

请帮忙=)

4

1 回答 1

0

我不知道我是否明白你想要什么但是......如果你想从你已经计算过的方法旧值中写入,你必须将它保存到全局变量中,或者以某种其他方式,你可以从方法外部访问她. 只写结果你有两个选择。您可以在调用方法 null 时将其作为参数传递,并且只需检查参数是否为 null,如果您有旧结果(您应该有它),则写入旧结果。所以电话是:

rnd.highText(null);

改变的方法是:

 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。我希望你明白我想告诉你的。

于 2013-09-22T10:53:18.683 回答