对于循环和多个变量和条件.
我正在使用for循环来设置源和目标索引来复制数组中的项目.
for(int src = 0,dst = 8; src < 8,dst >= 0; src ++,dst --) { arr2[dst] = arr1[src]; }
反正这样的东西
(AND)|| (||)
我的问题是退出条件.这里有两个. src< 8和dst≥0.这些条件是AND-ed(&)或OR-ed(||). 进一步解释,是这样评估的条件:
(src < 8) && (dst >= 0)
还是他们这样评价?
(src < 8) || (dst >= 0)
还是别的东西完全不同?我想象,逻辑上要做的是评估上面指定的两种方式之一,而不是别的.
解决方法
逗号运算符将返回正确表达式的值,因此写入:
src < 8,dst >= 0;
因为条件将与写入dst> = 0相同.src<在这种情况下,8将被完全忽略,因为它与第二个条件分开评估,然后返回第二个条件.这不会对AND或OR进行评估,但实际上只是完全“抛弃”第一个检查的效果. 如果您想要正确评估,您应该使用您的两个选项之一(通过||或&&)显式指定行为. 详情请参阅Comma Operator:
When the set of expressions has to be evaluated for a value,only the rightmost expression is considered.
原文地址:https://www.jb51.cc/c/114596.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。