首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >若(条件),(条件)(条件)

若(条件),(条件)(条件)
EN

Stack Overflow用户
提问于 2018-11-25 01:21:33
回答 2查看 90关注 0票数 0

我刚刚开始了Euler项目,我已经遇到了一些问题。为什么这些方法产生不同的结果?

代码语言:javascript
复制
int sum=0;
for (int i=0;i<n;i++)
{
if(i%3==0 || i%5==0)
    sum+=i;
}

代码语言:javascript
复制
int sum=0;
for (int i=0;i<n;i++)
{
if(i%3==0)
   sum+=i;
if (i%5==0)
   sum+=i;
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-11-25 01:24:23

第一个将检查它是i%3还是i%5。即使两者都是真,它也只执行一次。

第二个将执行两次sum+=i,如果两者都是真的话:

代码语言:javascript
复制
30%3 = 0 and 30%5 = 0

因此,这两种方法都将被执行:

代码语言:javascript
复制
if(i%3==0)
   sum+=i;
if (i%5==0)
票数 2
EN

Stack Overflow用户

发布于 2018-11-25 02:37:36

在第一种情况下,任何比较都足以执行句子。如果第一个比较是正确的,则将不再进行第二个比较。这是因为真或布尔总是正确的。也就是说,在连接或有一个真实的比较序列中,结果总是正确的。

在第二种情况下,总是对这两个条件进行评估。根据这些评估结果,判决是否会被执行。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53463894

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档