public class C31 {
public static void main(String[] args) {
int num1 = (int)(Math.random() * 10);
int num2 = (int)(Math.random() * 10);
if(num1 == num2) {
return;
}
num2 = (int)(Math.random() * 10);
int lottery = num1 * 10 + num2;
}
}
没毛病,生成的随机范围是1-9包含1/9
随机数生成的是0~1的数字,需要*100,方可得到两位数的随机数
还有你的return需要一个值,你这样系统不知道你return什么的
另外我觉得num1和num2的随机数,两数相等时,我觉得很难很难遇到
你应该是为了输出num1的十倍加num2把 获取两位数随机数如下 10<随机数<100:
public class C31 {
public static void main(String[] args) {
int num1 = (int) (Math.random() * 90 + 10), num2;
while (true) {
num2 = (int) (Math.random() * 90 + 10);
if (num1 != num2) {
break;
}
}
int lottery = num1 * 10 + num2;
System.out.println(lottery);
}
}
Math.random() 的生成随机数范围是 [0,1) 区间左闭右开
两位数的范围是 10-99 也就是说你生成的随机数要在 [10-100) 然后取整
转换一下就是 [0,90) + 10 取整,用代码来写就是
(int)(Math.random() * 90 + 10)
总结一下规律就是 要生成一个[m,n] 区间的正整数公式为
(int)(Mant.random() * (n - m + 1) + m)