JAVA生成25个int类型的随机数问题

int a=0;
int b=0;
for(int i=0;i<25;i++){
b=a;
a=(int)Math.random();
if(b==a){
System.out.println("相等");
}else if(b<a){
System.out.println("小于");
}else if(b>a){
System.out.println("大于");
}
}

为什么运行结果一直为相等喃?

Math.random()属于0-1,
你在一强制转换,一个是0

这样写,a = (new Random()).nextInt(3);
这是说随机在1-3之间选个整数,

或者((int)Math.random()*100)即可
温馨提示:内容为网友见解,仅供参考
第1个回答  2009-05-22
//你的写法有点天马行空的感觉,你好像都没有往下生成随机数,参考一下这个;

import java.util.Random;

public class RandomTest {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
//Random r=new Random();
//a = r.nextInt();
int a = 0,b = 0;
for(int i=0;i<25;i++){
b = a;
a = (new Random()).nextInt(3);
if(b==a){
System.out.println("相等");
}else if(b<a){
System.out.println("小于");
}else if(b>a){
System.out.println("大于");
}
}
}
}
第2个回答  2009-05-22
生成0-25的随机数,就可以了。

a=(int)(Math.random()*25);

public class Test {
public static void main(String args[]){
int a=0;
int b=0;
for(int i=0;i<25;i++){
b=a;
a=(int)(Math.random()*25);
if(b==a){
System.out.println("相等");
}else if(b<a){
System.out.println("小于");
}else if(b>a){
System.out.println("大于");
}
}

}
}
第3个回答  2009-05-22
Random r = new random()
int i = r.nextInt(100)//生成1~99的随机数
相似回答