新人求指导下

qq_17801603 2014-07-19 01:55:14
今天我在敲一个练习的时候 13-23+33-43+...............973-983+993-1003,我知道答案是 -500,
但是
public class Test {
public static void main(String[] args) { //在这个代码的循环语句里,我把 sum+=x 放在了 if之前 得出 503,
int x = 0;
int sum = 0;
for(int i=1; i<=100; i++) {
sum += x;
if (i%2==0) {
x = -(i*10+3);
}
else {
x = i*10+3;
}
}
System.out.println(sum);
}
}



实际上正确的代码是
if (i%2==0) {
x = -(i*10+3);
}
else {
x = i*10+3;
}
sum += x;
}
System.out.println(sum);


位置的变化到底导致了什么情况啊 ,我没有看懂,求大大带走!!!
...全文
110 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
qcxl 2014-07-19
  • 打赏
  • 举报
回复
你的思路是:通过sum += 13 sum += -23 ....... sum += -1003 100次相加之后得到最终结果; 但是:由于x初始值为0,按照错误算法:先去加x,再去计算第i个x的值就变成如下 sum += 0 sum += 13 sum += -23 ....... sum += 993 100次相加之后得到最终结果; 所以就像楼上说的,你最后那个-1003做了无用功,根本没有加到sum中去
小灯光环 2014-07-19
  • 打赏
  • 举报
回复
sum的值是根据x决定的,而x的值是根据条件决定的,你写到上面肯定就不合适了,而且你循环到最后一次的时候,那个if条件也变得没有意义了,因为你已经得到了最后的sum。
《jquery技术内幕:深入解析jquery架构设计与实现原理》由阿里巴巴资深前端开发工程师撰写,从源代码角度全面而系统地解读了jquery的17个模块的架构设计理念和内部实现原理,旨在帮助读者参透jquery中的实现技巧和技术精髓,同时本书也对广大开发者如何通过阅读源代码来提升编码能力和软件架构能力提供了指导。   《jquery技术内幕:深入解析jquery架构设计与实现原理》首先通过“总体架构”梳理了各个模块的分类、功能和依赖关系,让大家对jquery的工作原理有大致的印象;进而通过“构造jquery对象”章节分析了构造函数jquery()的各种用法和内部构造过程;接着详细分析了底层支持模块的源码实现,包括:选择器sizzle、异步队列deferred、数据缓存data、队列queue、浏览器功能测试support;最后详细分析了功能模块的源码实现,包括:属性操作attributes、事件系统events、dom遍历traversing、dom操作manipulation、样式操作css、异步请ajax、动画effects。   《jquery技术内幕:深入解析jquery架构设计与实现原理》在分析每个模块时均采用由浅入深的方式,先概述功能、用法、结构和实现原理,然后介绍关键步骤和分析源码实现。让读者不仅知其然,而且知其所以然。事实上,本书的根本价值在于传达一种通过阅读源码快速成长的方式。无论是前端新人,还是经验丰富的老手,只要是对javascript感兴趣的开发人员,都会从本书中受益。

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧