我有一个复合语句,如下所示:

for (int count = 0; count <= passLength; count++)
{
    while( !(charGenerator >= 65 && charGenerator <= 90) || (charGenerator >= 97 && charGenerator <= 122))
    {
        charGenerator = randNum.nextInt(123);
    }
    System.out.print((char)charGenerator);
    charGenerator = 0;
}


我在for循环中使用它,因此它将一次生成许多数字,但是我的问题是它从不选择第二个范围内的数字,换句话说,我从97到122都不会得到任何数字。它在第一个范围内正常工作。如何使它从两组中选择随机数?

最佳答案

!适用于||的第一项,不适用于整个表达式。添加一对括号:

while( !((charGenerator >= 65 && charGenerator <= 90) ||
         (charGenerator >= 97 && charGenerator <= 122)) )

07-24 19:54