【问题标题】:return variable after for loop in a different class在不同类中的 for 循环后返回变量
【发布时间】:2020-12-31 02:47:29
【问题描述】:

所以我尝试在不同的类中创建一个 for 循环,并希望将循环的最后一个值获取到主函数之外。问题是:x 无法解决... 我还希望在不同的类中有许多值和一个 for 循环。我该如何解决这个问题?非常欢迎任何帮助。提前谢谢你。

public class Javaapp {
    public static void main(String[] args) {

        Data a = new Data();
        int[] getData = a.returnData();

        a.for1();
        System.out.println(a.x); //x cannot be resolved or is not a field
        System.out.println(a.k);
    }
}
//-------------------------------------------------
public class Data {
int k=1;
    public double for1() {
        int x = 2;
        for (int i = 0; i < 10; i++) {
            x = x *x;
        }
        return x;
    }
}

【问题讨论】:

    标签: java loops for-loop methods


    【解决方案1】:

    试试这个。

    public class Javaapp {
        public static void main(String[] args) {
    
            Data a = new Data();
            int[] getData = a.returnData();
    
            // a.for1();
            System.out.println(a.for1());
            System.out.println(a.k);
        }
    }
    

    【讨论】:

    • 它打印出 x= 0.0 和 k= 1。但我希望 x 自行相乘,然后给我结果。我可以在一门课上做,但使用不同的课是我自己无法解决的问题。
    • for1 () 返回零。因为x 在循环期间溢出。 x = 2, 4, 16, 256, 65536, 0, 0, 0, ...
    • 是的,谢谢你,现在它可以工作了。我没想到Java会发生溢出...
    【解决方案2】:

    要在循环后访问循环值,需要设置类属性或从函数中获取返回值。

    试试这个代码:

    public class Javaapp {
        public static void main(String[] args) {
    
            Data a = new Data();
            int[] getData = a.returnData();
    
            a.for1();  // can also call:  int x = a.for1();
            System.out.println(a.x); //x cannot be resolved or is not a field
            System.out.println(a.k);
        }
    }
    //-------------------------------------------------
    public class Data {
        public int k=1;  // can access outside class
        public int x=0;
        public double for1() {
            int x = 2;
            for (int i = 0; i < 10; i++) {
                x = x *x;
            }
            this.x = x; // set class property 
            return x;   // return value
        }
    }
    

    【讨论】:

    • 它只是打印出 x = 0 和 k= 1 。但我希望 x 自身相乘,然后给我结果。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-21
    相关资源
    最近更新 更多