新手问个疑惑的有关问题 在if 语句中的多条件是用| 还是用||呢,如何结果一样
新手问个疑惑的问题 在if 语句中的多条件是用| 还是用||呢,怎么结果一样
刚开始学 有一题目是这样的
cin >> word;
if (word == "exit" | word == "rerurn" | word=="close")
//break;
cout << word;
if (word == "a" || word == "an" || word == "the")
cout << word;
第一个IF 跟第二个IF 的效果是一样的, | 不是按位或吗? 第二个IF用|| 可以理解,不过第一个是为什么呢?
还是这两个要等用变量或表达式才会看出效果?
------解决思路----------------------
这两种用法也有不同,如果用逻辑或(
------解决思路----------------------
),那么如果判断第一个表达式为真,他就不再判断与计算之后的了,因为之后的无论是什么,结果都为真。而按位或(
------解决思路----------------------
)则会判断所有的
------解决思路----------------------
一般来说简单运算互换没有问题, 但是混合函数就不同了.
if(true
------解决思路----------------------
func())..... 这会调用函数func()
而
if(true
------解决思路----------------------
func())....则不会调用func().
用于条件的"或", 就用
------解决思路----------------------
就行了,
------解决思路----------------------
还是用在位运算.
刚开始学 有一题目是这样的
cin >> word;
if (word == "exit" | word == "rerurn" | word=="close")
//break;
cout << word;
if (word == "a" || word == "an" || word == "the")
cout << word;
第一个IF 跟第二个IF 的效果是一样的, | 不是按位或吗? 第二个IF用|| 可以理解,不过第一个是为什么呢?
还是这两个要等用变量或表达式才会看出效果?
------解决思路----------------------
这两种用法也有不同,如果用逻辑或(
------解决思路----------------------
),那么如果判断第一个表达式为真,他就不再判断与计算之后的了,因为之后的无论是什么,结果都为真。而按位或(
------解决思路----------------------
)则会判断所有的
------解决思路----------------------
一般来说简单运算互换没有问题, 但是混合函数就不同了.
if(true
------解决思路----------------------
func())..... 这会调用函数func()
而
if(true
------解决思路----------------------
func())....则不会调用func().
用于条件的"或", 就用
------解决思路----------------------
就行了,
------解决思路----------------------
还是用在位运算.