这样随机生成一个随机两位数对不对?

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)