提问人:Elizr 提问时间:1/14/2023 最后编辑:Pete BeckerElizr 更新时间:1/14/2023 访问量:1454
如何使用 Bool 变量 [closed]
How to use Bool variable [closed]
问:
将输入的 3 个字符的字符串读入变量 userCode。声明一个布尔变量 isValid,如果 userCode 的第二个和第三个字符都是数字,则将 isValid 设置为 true。否则,将 isValid 设置为 false。
粗体字是我必须填写的内容。其余的都是问题的一部分。
int main() {
string userCode;
bool isValid;
getline(cin, userCode);
if (isdigit(userCode[2])){
isValid = true;
userCode = isValid;
}
if (isdigit(userCode[3])){
isValid = true;
userCode = isValid;
}
else {
bool isValid = false;
}
if (isValid) {
cout << "Valid passcode" << endl;
}
else {
cout << "Invalid passcode" << endl;
}
return 0;
}
答:
4赞
pm100
1/14/2023
#1
第二个和第三个字符位于 [1] 和 [2]。您应该以 isvalid 等于 true 开头。然后测试这两个字符,如果其中一个不是数字。
bool isvalid = true;
if(!isdigit(userCode[1]) || ! isdigit(userCode[2]))
isvalid = false;
if(isvalid)
cout << "good\n";
else
cout << "bad\n";
或者反过来说逻辑
bool isvalid = false;
if(isdigit(userCode[1]) && isdigit(userCode[2]))
isvalid = true;
if(isvalid)
cout << "good\n";
else
cout << "bad\n";
评论
0赞
Elizr
1/14/2023
这样做了,但仍然没有工作:(
0赞
sweenish
1/14/2023
我宁愿证明某件事是真的,而不是证明它是假的。换句话说,假设最坏的情况,并说服自己事情是好的。在这种情况下,它将允许您摆脱 s,并简化代码。!
评论
isValid
&&
)bool isValid = false;
正在声明一个新的局部变量,该变量在分支末尾立即被丢弃。else
bool
false
true
*