JAVA - 循环数字?

时间:2017-03-22 15:51:25

标签: java

我想创建一个创建假ip地址的系统(仅仅是为了好玩),但是我无法使它工作,因为当我在控制台中输出数字时它不会刷新数字。它不断重复相同的" ip"

import java.util.Random;

public class Main {

public static void main(String[] args) {

    System.out.println("Random IP's");

    Random rand = new Random();

    int randomIp1 = rand.nextInt(999) + 10;
    int randomIp2 = rand.nextInt(999) + 10;
    int randomIp3 = rand.nextInt(999) + 10;
    int randomIp4 = rand.nextInt(999) + 10;

    boolean start = true;

    while (start == true) {
        System.out.println(randomIp1 + "." + randomIp2 + "." + randomIp3 + "." + randomIp4);
    }
}
}

请记住。我刚刚开始学习java所以它可以是一个很小的变化!

3 个答案:

答案 0 :(得分:2)

您生成值一次,然后以无限循环打印出来。

如果你想在循环中重新生成数字,那么在循环中生成它们:

while (true) {
    int randomIp1 = rand.nextInt(999) + 10;
    int randomIp2 = rand.nextInt(999) + 10;
    int randomIp3 = rand.nextInt(999) + 10;
    int randomIp4 = rand.nextInt(999) + 10;

    System.out.println(randomIp1 + "." + randomIp2 + "." + randomIp3 + "." + randomIp4);
}

答案 1 :(得分:1)

你的循环一遍又一遍地重复相同的值。你永远不会改变字段的当前状态,这就是你总能看到相同数字的原因。

 while (start == true) {
        System.out.println(randomIp1 + "." + randomIp2 + "." + randomIp3 + "." + randomIp4);
    }

为了解决此问题,您必须重新分配 in 循环中的字段,或者只是这样:

while(true){
 System.out.println(rand.nextInt(999) + "." + rand.nextInt(999) + "." + rand.nextInt(999) + "." + rand.nextInt(999));
}

答案 2 :(得分:-1)

请尝试使用此功能。它会在0到0 + 255之间创建一个随机数。

255 beacuse是IP的最大值而不是999。

您需要将其放在括号中。

int randomNumber=(int) (Math.random()*255+0);

使用循环创建任意多个。