多个条件同时;第二个条件从不适用

时间:2013-04-21 12:49:37

标签: java

我的复合声明如下:

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得到任何数字。它可以正常工作第一个范围。如何制作它以便从两个组中选择随机数?

1 个答案:

答案 0 :(得分:5)

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

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