数组中的随机整数

时间:2016-01-27 17:54:41

标签: java arrays random

我是Java的新手,我只是使用多个类并使用System.out.println来练习我的技能。

我正在努力制作一个与您进行对话的节目。用电脑。我想要尝试做的不是每次运行控制台时具有相同年龄的计算机,而是使用数组列出随机年龄的负载,然后随机选择。在我的计算机课上,我得到了:

    static int [] compAge = {19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31};

在我的主要会话课上,我得到了:

int Uage = input.nextInt(); // (Uage is user age)
System.out.println("That's cool! You're " +Uage+ ". I'm " + (Computers age here) + " myself. Where do you live?");

我已经阅读了一下,找到了诸如

之类的代码
compAge[new Random().nextInt(compAge.length)]

但老实说,我对数组和使用随机函数的知识(我已导入它)非常有限,而且我不确定该去哪里。

任何帮助都会受到大力赞赏。谢谢大家。

4 个答案:

答案 0 :(得分:0)

请改用Math.Random:

int age = ((int)Math.random()*13)+19;

它会给你一个介于0到12之间的数字并加上19! 好处是你必须只改变这里的值来改变年龄范围而不是为数组添加值。

答案 1 :(得分:0)

compAge[new Random().nextInt(compAge.length() )]

new Random().nextInt()生成随机正数。如果您使用compAge.length(),则设置最大值(仅限于此,因此不会选择此项)。

这样,每次启动程序时都会有一个随机的年龄。

答案 2 :(得分:0)

您正在寻找生成随机数。 Math.random的一般用法是:

// generates a floating point random number greater than 0 
// and less  than largestPossibleNumber
float randomNumber = Math.random() * largestPossibleNumber;

// generates an integer random number between greater than 0 
// and less than largestPossibleNumber
int randomNumber = (int)(Math.random() * largestPossibleNumber);

// generates an integer random number greater than 1 
// and less than or equal to largestPossibleNumber
int randomNumber = (int)(Math.random() * largestPossibleNumber) + 1;

答案 3 :(得分:-1)

如果你想从数组中选择ramdomly,请使用:

     static int [] compAge = {19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31};

有了这个你有数组的随机索引:

      int age = new Random().nextInt(compAge.length);

并显示为这样的值:

    System.out.println("Random value of array compAge  : " + compAge[age]);

以下是完整的代码:

    import java.util.Random;
    import java.util.Scanner;
    public class MainConversation {

     public static void main (String[] args) {
       Scanner input = new Scanner (System.in); 
       int [] compAge = {19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31}; 
      System.out.println("Enter a random number between 0 and  "+ (compAge.length-1));
     int numb;
    while(input.hasNextInt() && (numb = input.nextInt()) < compAge.length){
 // int age = new Random().nextInt(compAge.length);
      System.out.println("Random value of array compAge : " + compAge[numb]); 
      }
    } 
   }