1

我有一个复合语句如下:

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 之间的任何数字。它适用于第一个范围。我如何使它从两组中选择随机数?

4

1 回答 1

5

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

while( !((charGenerator >= 65 && charGenerator <= 90) ||
         (charGenerator >= 97 && charGenerator <= 122)) )
于 2013-04-21T12:52:03.240 回答