如何使用 Bool 变量 [closed]

How to use Bool variable [closed]

提问人:Elizr 提问时间:1/14/2023 最后编辑:Pete BeckerElizr 更新时间:1/14/2023 访问量:1454

问:


想改进这个问题吗?通过编辑这篇文章添加详细信息并澄清问题。

10个月前关闭。

社区在 10 个月前审查了是否重新讨论这个问题,并将其关闭:

原始关闭原因未解决

将输入的 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;
}
C++ C++11 布尔逻辑

评论

0赞 doctorlove 1/14/2023
那么,问题出在哪里呢?(当您声明它并检查两个数字时,可能会设置为 false......使用 AND (isValid&&)
0赞 Neil Butterworth 1/14/2023
没有粗体 - 请阅读您的问题!
3赞 François Andrieux 1/14/2023
bool isValid = false;正在声明一个新的局部变量,该变量在分支末尾立即被丢弃。else
0赞 sweenish 1/14/2023
我觉得包含包含并使其成为实际最小可重复示例不会那么困难。否则,我支持@doctorlove的建议。应该初始化为 ,并且必须说服您才能使其 。boolfalsetrue
0赞 Julian 1/14/2023
不能在代码格式块中使用标记。星号仅显示为文本。您应该删除它们。*

答:

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,并简化代码。!