C++ 使用&&;和| |在do…while循环中? #包括 使用名称空间std; int main() { 再次烧焦; 做 { cout
是:|是“或”和&&是“和” 每个字符不是“n”就是“n”,因为它不可能同时是“n”和“n” 另一种(可能更简单)编写条件的方法是:C++ 使用&&;和| |在do…while循环中? #包括 使用名称空间std; int main() { 再次烧焦; 做 { cout,c++,boolean-logic,C++,Boolean Logic,是:|是“或”和&&是“和” 每个字符不是“n”就是“n”,因为它不可能同时是“n”和“n” 另一种(可能更简单)编写条件的方法是: #include<iostream> using namespace std; int main() { char again; do { cout<<"you are in the while loop"; cout<<"do you want to continue
#include<iostream>
using namespace std;
int main()
{
char again;
do
{
cout<<"you are in the while loop";
cout<<"do you want to continue looping?";
cin>>again;
} while (again != 'n' || again != 'N');
system("pause");
return 0;
}
这意味着“与(同样是'n'或'n')相反。”是:| | is“或”and&&is“and”
每个字符不是“n”就是“n”,因为它不可能同时是“n”和“n”
另一种(可能更简单)编写条件的方法是:
#include<iostream>
using namespace std;
int main()
{
char again;
do
{
cout<<"you are in the while loop";
cout<<"do you want to continue looping?";
cin>>again;
} while (again != 'n' || again != 'N');
system("pause");
return 0;
}
这意味着“的对立面(同样是'n'或'n')”&&是一个逻辑AND。
||是逻辑OR
(同时,&是位AND,|是位OR。)&&是逻辑AND。
||是逻辑OR
(还有,&是位AND,|是位OR。)你可能想试试while(!(再次='n'|再次='n'))你可能想试试while(!(再次='n'|再次='n'))这是一个常见的布尔逻辑问题。
的意思是“或”,意思是“只要这一方面是真的,那么表达式就是真的。”因此,当您将大写字母'N'
传递给c!='N'| c!='N'
时,程序会说:“嗯,'N'
不等于'N'
,因此表达式的一侧为真,因此整个表达式为真,无需检查表达式的其余部分。”即使按小写字母'n'
,程序也会说“嗯,'n'
等于'n'
,但它不等于'n'
,因此表达式的一侧为真,因此整个表达式为真。”这就是while循环中发生的情况
另一方面,&
表示“和”,这意味着“表达式的两边都必须为真”;当您将大写的'N'
传递给c!='N'&&c!='N'
时,程序会思考'N'
不等于'N'
,但它等于'N'
,因此表达式只有一侧为真,因此表达式为假
这会让人感到困惑,因为如果您测试输入的字符是否等于特定值,您将使用|
(例如,“我想知道是否输入了'a'
或'b'
或'c'
)
基本上,当您将|
用于特定表达式,并且希望与该表达式相反时,您需要更改为&&
(例如,我不想要'a'
,'b'
或'c'
;或者换句话说,值不能是'a'
,'b'
,和'c'
)类似地,如果你想对一个特定的表达式使用&&
,并且你想使用与该表达式相反的表达式,那么你需要使用|
。这是德摩根定律之一,我建议你仔细阅读,这样你就可以避免自己重新发现每一个定律。这是一个常见的布尔逻辑问题。||
的意思是“或”,意思是“只要有一个方面是真的,那么表达式就是真的。”所以当你把一个大写的'N'
传递给c!='N'| c!='N'
程序会说“嗯,'N'
不等于'N'
,因此表达式的一侧为真,因此整个表达式为真,无需检查表达式的其余部分。”即使按小写字母'N'
,程序也会说”嗯,'n'
等于'n'
,但它不等于'n'
,因此表达式的一侧为真,因此整个表达式为真。”这就是while循环中发生的情况
另一方面,&&
表示“和”,这表示“表达式的两边都必须为真”;当您将大写字母'N'
传递给c!='N'&&c!='N'
时,程序会思考”'N'
不等于'N'
,但它等于'N'
,因此表达式只有一侧为真,因此表达式为假。”
这会让人感到困惑,因为如果您测试输入的字符是否等于特定值,您将使用|
(例如,“我想知道是否输入了'a'
或'b'
或'c'
)
基本上,当您将|
用于特定表达式,并且希望与该表达式相反时,您需要更改为&&
(例如,我不想要'a'
,'b'
或'c'
;或者换句话说,值不能是'a'
,'b'
,和'c'
)类似地,如果你想对一个特定的表达式使用&&
,并且你想要与该表达式相反的表达式,那么你需要使用|
。这是德摩根定律之一,我建议你仔细阅读,这样你就可以避免自己重新发现每一个定律。这是一个称为“”的布尔代数
在您的情况下,您希望用户不要输入'n'
或'n'
,可以将其转换为此逻辑
Not (P And Q) = (Not P) Or (Not Q)
Not (P Or Q) = (Not P) And (Not Q)
当应用德摩根定律时,它将是
!(again == 'n' || again == 'N')
有关详细信息,您可能需要阅读这是一个名为“”的布尔代数
在您的情况下,您希望用户不要输入'n'
或'n'
,可以将其转换为此逻辑
Not (P And Q) = (Not P) Or (Not Q)
Not (P Or Q) = (Not P) And (Not Q)
当应用德摩根定律时,它将是
!(again == 'n' || again == 'N')
要了解更多信息,您可能需要阅读虽然原始海报现在很高兴,但我在其他答案中没有看到这一点