基本上做密码生成器。想要过滤掉ASCII字符91-96 这是我的if语句。我怎样才能缩短它的样子 " randomnumber == 91-96"不必重复自己?
if (randomnum == 91 || randomnum == 92 || randomnum == 93 || randomnum == 94 || randomnum == 95 || randomnum == 96) // We dont want values 91 - 96
{ // Do nothing
}
答案 0 :(得分:4)
如果您要过滤掉'Z'
和'a'
之间的部分,
if (randomnum > 'Z' && randomnum < 'a')
会更具可读性。
答案 1 :(得分:3)
if (randomnum > 90 && randomnum < 97) // We dont want values 91 - 96
{ // Do nothing
}
答案 2 :(得分:0)
由于您要过滤掉91到96之间的ASCII字符,您也可以通过以下方式进行:
if (randomnum >= 91 && randomnum <= 96)
{
// do stuff
}
这大大缩短了代码。和&amp;&amp;用于检查char是否小于或等于96 AND 大于或等于91.这称为逻辑AND运算符。
编辑:关注@ PeteBecker的建议,这是一个更好的方法来做if语句:
if (randomnum >= '[' && randomnum <= '`') // Notice that I use a char value here with the comparison operator
{
// do stuff
}
这里的区别在于randomnum
是一个char变量,因此我们在比较中仅使用char值是有意义的。使用int值,如上所述,也会将非ASCII值过滤为纯整数。虽然两种形式的if语句都可以起作用,但在带有char变量的比较运算符中使用char值会更好。
另外,我找到了&#39; [&#39;和&#39;`&#39;来自ASCII表;它的DEC值分别为91和96分别指的是。