当我从文本框中检查输入时,我将其传递给循环以检查单个字符。
我有点不确定为什么会发生这种情况,但是当我输入“/”时,该函数会将其读作false?
// Checks the Password contains the correct input
for (i = 0; i < passwordLength; i++)
{
v = Convert.ToInt32(passwordArray[i]);
// (not 0-9 or not A-Z or not a-z)
// "/"(converted to 47) reads as (true)+(true)+(false) = false
if ((v < 48 || v > 57) && (v < 65 || v > 90) && (v < 97 || v > 122))
{
e = 2;
}
}
答案 0 :(得分:0)
在if条件中尝试此操作
if (!(v >= 48 && v <= 57) && !(v >= 65 && v <= 90) && !(v >= 97 && v <= 122))
答案 1 :(得分:0)
这可以用同样的方式工作,我觉得有点不那么混乱。
if( !((v >= 48 && v <= 57) || (v >= 65 && v <= 90) || (v >= 97 && v <= 122)))
然而,这也有效。
((v < 48 || v > 57) && (v < 65 || v > 90) && (v < 97 || v > 122))
顶部函数,使用|| (或)作为比较,倾向于真实:
(true) || (false) = (true);
但随着! (没有)补充说,结果是倒置的:
!((true) || (false)) = (false);
第二个功能,使用&amp;&amp; (和)作为比较,倾向于虚假:
(true) && (false) = (false);
@Jade感谢您帮助我理解它:)