加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

C:for循环(多个变量)中的多个退出条件:AND -ed或OR -ed?

发布时间:2020-12-16 05:29:56 所属栏目:百科 来源:网络整理
导读:对于循环和多个变量和条件. 我正在使用for循环来设置源和目标索引来复制数组中的项目. for(int src = 0,dst = 8; src 8,dst = 0; src ++,dst --){ arr2[dst] = arr1[src];} 反正这样的东西 (AND)|| (||) 我的问题是退出条件.这里有两个. src 8和dst≥0.这些
对于循环和多个变量和条件.

我正在使用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.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读