-3

This is my error message:

Exception in thread "main" java.lang.IllegalArgumentException: bound must be positive
    at java.util.Random.nextInt(Random.java:388)
    at playertest.Player.<init>(Player.java:39)
    at playertest.Playertest.main(Playertest.java:35)

My Code:

import java.util.Random;
public class Player {

private int id;
private String name;
private boolean insured;
private String gender;
private int age=1;

private int luckynumber;

Player(int id)
{
    Random rnd=new Random();
    this.id=id;
    luckynumber=rnd.nextInt(50-101);

}
Player(int id,String name,boolean insured,String gender,int age)
{
    Random rnd=new Random();
    this.id=id;
    this.name=name;
    this.insured=insured;
    this.gender=gender;
    this.age=age;

    luckynumber=rnd.nextInt(50-101);



}
void setid(int Id)
{
    this.id=Id;
}
int getid()
{
    return id;
}
void setname(String name)
{
    this.name=name;
}
String getname()
{
    return name;
}
void setage(int age)
{
    this.age=age;
}
int getage()
{
    return age;
}
int getluckynumber()
{
    return luckynumber;
}
int changeluckynumber()
{
    Random rnd=new Random();
    this.luckynumber=rnd.nextInt(50-101);
    return luckynumber;
}
}

import java.util.Scanner;

public class Playertest {

public static void main(String[] args) {


    Scanner input=new Scanner(System.in);
    System.out.println("Enter id of player");
    int id=input.nextInt();
    System.out.println("Enter name of player");
    String name=input.next();
    System.out.println("Is player insured?");
    boolean insured=input.nextBoolean();
    System.out.println("Enter gender of player");
    String gender=input.next();
    System.out.println("Enter age of player");
    ***int age=input.nextInt();***


    Player ob=new Player(id,name,insured,gender,age);
    ob.setid(id);
    ob.setage(age);
    ob.setname(name);

    System.out.println("ID :"+ob.getid()+" Name :"+ob.getname()+" Age :"+ob.getage()+" Lucky number :"+ob.getluckynumber());
    System.out.println("New lucky number is :"+ob.changeluckynumber());


}

}
ssuperczynski
  • 3,190
  • 3
  • 44
  • 61
  • Did you read the error message before dumping it here... ? The error message tells you exactly what's wrong... – vard Mar 09 '16 at 17:04

1 Answers1

1

As the error states:

bound must be positive

What are you using for the bound?:

rnd.nextInt(50-101)

-51 is not a positive number.

According to the documentation, this method:

Returns a pseudorandom, uniformly distributed int value between 0 (inclusive) and the specified value (exclusive), drawn from this random number generator's sequence.

Are you instead trying to generate a random number between 50 and 101? That might look something like this:

rnd.nextInt(51) + 50
David
  • 208,112
  • 36
  • 198
  • 279