【发布时间】:2014-08-13 12:31:24
【问题描述】:
我对 IF 语句有一个基本的疑问。 假设我想将字符串 SUN 与字符数组(大小为 3)匹配。
if(arr[0]!='S' || arr[1]!='U' || arr[2]!='N')
cout << "no";
else
cout<< "yes";
是否在 If 语句中检查了所有条件,还是在第一次不匹配时返回 true?
如果所有条件都被检查,检查的顺序是从右到左吗?
【问题讨论】:
-
你用的是c还是c++?
-
请注意,它不是真正的 c 风格字符串(无空终止)
-
这是 C++ 而不是 C。编辑帖子以解决此问题。
-
C 和 C++ 不会“评估”任何特定的方向,在这种情况下它们会 short circuit。
-
这是c++,条件都会被检查,直到第一个条件不满足,然后就掉出来了。 (即它会在第一次评估时短路)
标签: c++ if-statement operators logical-operators