Loops Java使用循环中循环的返回值

Loops Java使用循环中循环的返回值,loops,for-loop,random,return,Loops,For Loop,Random,Return,对不起,英语是我的第一语言。我正在构建一个主类和方法来创建一组随机数。我希望使用for循环,并希望在循环的每个步骤中使用最后一个循环的结果 要求用户输入3个整数,用以下公式创建一个随机数: z=(a*z+b)%m 1.步骤 z=(a*0+b)%m;假设结果是7。 2.步骤: z=(a*7+b)%m 等等 我想让程序给我20个随机数。 在循环的第一步中,随机数z为0,然后每增加一步,就根据最后一步的结果生成随机数。 我希望你们能理解我想说的 到目前为止,我的代码是: import java.io.

对不起,英语是我的第一语言。我正在构建一个主类和方法来创建一组随机数。我希望使用for循环,并希望在循环的每个步骤中使用最后一个循环的结果

要求用户输入3个整数,用以下公式创建一个随机数: z=(a*z+b)%m

1.步骤 z=(a*0+b)%m;假设结果是7。 2.步骤: z=(a*7+b)%m 等等

我想让程序给我20个随机数。 在循环的第一步中,随机数z为0,然后每增加一步,就根据最后一步的结果生成随机数。 我希望你们能理解我想说的

到目前为止,我的代码是:

import java.io.*;
public class Zufallszahlentest {

    public static void main (String [] args) throws IOException {

        BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
        System.out.println("Geben Sie nacheinander die Werte für a,b &m ein.");
        int a = Integer.parseInt(in.readLine());
        int b = Integer.parseInt(in.readLine());
        int m = Integer.parseInt(in.readLine());

        Methode(a,b,m);
        System.out.println(Methode(a,b,m));
    }

    static int Methode(int a, int b, int m){
            int z = 0;
            for (int i = 0; i <= 20; i++) {
                 z = (a*z+b)%m;
            }
            return z;
     }
}
import java.io.*;
公共类Zufallszahlentest{
公共静态void main(字符串[]args)引发IOException{
BufferedReader in=新的BufferedReader(新的InputStreamReader(System.in));
System.out.println(“Geben Sie Nachenander die Werte für a,b&m ein.”);
inta=Integer.parseInt(in.readLine());
intb=Integer.parseInt(in.readLine());
int m=Integer.parseInt(in.readLine());
方法(a,b,m);
系统输出打印LN(方法(a,b,m));
}
静态整数方法(整数a、整数b、整数m){
int z=0;
对于(int i=0;i
如果要保留上一个值,请将其设为静态
在类声明的开头声明“z”为静态int
因此“z”将成为一个类变量
已初始化,将保留以前的值

i、 e

import java.io.*;
公共类Zufallszahlentest{
静态int z=0;//类变量
公共静态void main(字符串[]args)引发IOException{
BufferedReader in=新的BufferedReader(新的InputStreamReader(System.in));
System.out.println(“Geben Sie Nachenander die Werte für a,b&m ein.”);
inta=Integer.parseInt(in.readLine());
intb=Integer.parseInt(in.readLine());
int m=Integer.parseInt(in.readLine());
方法(a,b,m);
系统输出打印LN(方法(a,b,m));
}
静态整数方法(整数a、整数b、整数m){

对于(int i=0;i您的循环位于错误的位置-如果希望println发生20次,它应该包括println。这应该可以:

import java.io.*;
public class Zufallszahlentest {

    public static void main (String [] args) throws IOException {

        BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
        System.out.println("Geben Sie nacheinander die Werte für a,b &m ein.");
        int a = Integer.parseInt(in.readLine());
        int b = Integer.parseInt(in.readLine());
        int m = Integer.parseInt(in.readLine());

        int z = Methode(a, b, m, 0);
        for (int i = 0; i < 20; i++) {
            System.out.println(z);
            z = Methode(a, b, m, z);
        }
    }

    static int Methode(int a, int b, int m, int z) {
        return (a * z + b) % m;
    }
}
import java.io.*;
公共类Zufallszahlentest{
公共静态void main(字符串[]args)引发IOException{
BufferedReader in=新的BufferedReader(新的InputStreamReader(System.in));
System.out.println(“Geben Sie Nachenander die Werte für a,b&m ein.”);
inta=Integer.parseInt(in.readLine());
intb=Integer.parseInt(in.readLine());
int m=Integer.parseInt(in.readLine());
intz=方法(a,b,m,0);
对于(int i=0;i<20;i++){
系统输出打印ln(z);
z=方法(a,b,m,z);
}
}
静态整数方法(整数a、整数b、整数m、整数z){
返回(a*z+b)%m;
}
}

将z设置为静态intI我认为这在Java中是不合法的。为什么不呢?通过将其设置为静态,它将成为一个类变量,并且值将被保留。它必须是方法外部的
静态
,而不是内部的。当然,理想情况下,名称应该比
z
更具描述性,但OP很容易更改。哇,伙计们,比非常感谢。我又一次想得太复杂了。我开始用if/else语句构建loof,还有其他什么。我想这行:intz=Methode(a,b,m,0);是我无法理解的重点,但现在已经清楚了。再次感谢大家。
import java.io.*;
public class Zufallszahlentest {

    public static void main (String [] args) throws IOException {

        BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
        System.out.println("Geben Sie nacheinander die Werte für a,b &m ein.");
        int a = Integer.parseInt(in.readLine());
        int b = Integer.parseInt(in.readLine());
        int m = Integer.parseInt(in.readLine());

        int z = Methode(a, b, m, 0);
        for (int i = 0; i < 20; i++) {
            System.out.println(z);
            z = Methode(a, b, m, z);
        }
    }

    static int Methode(int a, int b, int m, int z) {
        return (a * z + b) % m;
    }
}