前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >想学清楚循环 先搞定这个小学题目吧

想学清楚循环 先搞定这个小学题目吧

作者头像
用户5745563
发布2019-07-04 11:11:06
5040
发布2019-07-04 11:11:06
举报
文章被收录于专栏:码思客码思客

java零基础入门-核心语法篇(七) for 循环

前段时间网上有个小学题目火了,来看看

找外星人

这个题目一出,网上就炸锅了,这玩意是啥?看不懂,不会做,不明白,居然是个小学题目,各种受到1万点伤害啊。后来有大神发帖解答,才让众网友满血复活。其实这个题目的本质就是找规律。和我们这次要讲的 for 循环,还有点像,我们先看看这个题怎么解答的。

看到没有,看似无厘头的题目,其实是包含规律的,找到了规律,就找到了答案。

for 循环

废话不多,先上图,左边是for循环,右边是while循环

2种循环的对比

左边的for循环,是计算从0加到100最后的值,右边是while循环,从0打印到100。我们可以看到,其实循环所需要的要素都是一样的,红色框出来的是初始化条件,蓝色框的是循环条件,满足条件才可进行下次循环,绿色框是迭代条件,进行下一次循环需要改变的变量。要素都一样,所以说我们在大部分情况是可以使用for循环替代while循环的。

再来看我标注出来的表达式1 :初始化条件,2:循环条件,3:循环体,4:迭代条件,为什么要标注一个1,2,3,4?因为他们是有执行顺序的。顺序是这样的,首先运行表达式1,再运行2,如果 2 的返回值是 true,就开始运行3,这里是计算了一个加法,做完加法再运行4。这里的顺序一定要弄清楚,2后面就开始运行3,不要认为是运行的4。这是第一次循环的顺序,第二次就不一样了,直接2,3,4跳过了1,为什么?因为初始化条件只需要运行一次,如果再次运行,i 又会变成0,第一次的 i++运算白做了,结果也会错误。所以第二次只会运行2,3,4,然后运行了很久,发现 2 返回的不是 true 了,是false,这时候,就是最后一次运行了,他只运行了一个2 ,不再进入循环体。总结一下。

第一次:1,2,3,4

第二次:2,3,4

第三次:2,3,4

。。。

最后一次:2

我们再来看看这个从0一直加到100的程序逻辑。首先我们定义了一个 sum 用来保存计算结果,这里涉及到一个变量作用范围的问题了,讲不清楚就上图。

变量范围

总的来说大括号内部定义的变量,只有大括号内部可以用,出去不让用。而在大括号外面定义的变量,是可以在大括号内部使用的。

重名

如果两个变量分别定义在自己的大括号内,是可以重名的,因为他们只在自己的地盘转,不会影响别人。比如一个班级有两个叫路飞的同学,老师喊 “路飞!”,大家都不知道老师到底喊的是哪个。而如果两个路飞在不同的班级,老师随便怎么喊都不会有问题。

回到for循环,我们之所以在for循环外面定义sum变量,是因为我要在循环结束后查看结果,如果定义在循环里面,每次都会被初始化,无法计算累加结果,所以在循环里计算,在循环外保存,每次计算完成,更新变量的值,这样循环结束我们查看变量值就知道结果了。

循环过程

其实这个地方就是要理解好sum这个变量就行了,他就像个监工,每次循环里面的人干完活都要给监工报告一次,监工就记录一下最新结果。

下面我们来看看初学者必经的 99 乘法口诀表。这是个2层循环,请集中注意力,我们一步步的来完成口诀表。

99乘法表

在写乘法表的过程中,我们不仅仅要学习代码,更重要的是要学习思维过程和调试过程,如何一步步达到我们的目标。我们开始的时候说的找外星人,就是锻炼观察能力和思维能力,多图预警~

1

2

3

4

5

6

7

8

9

有些同学发现不对啊,我的口诀是这样念的,一七得七,二七一十四,三八妇女节...你这里是8*3,我要3*8,好吧...我们只要把打印的时候,i 和 j 的位置调换即可

10

好了,这样就完成乘法表了。其实我们可以看一下,写的代码并不多,但是思路很重要。有一个问题摆在你面前,你要有一个清晰的思路,如何一步步去克服困难,完成任务。

上次我们提到了一个 foreach循环,其实和for 循环差不多, 但是多用于处理对象,这个我们学了对象以后再来详细说。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-06-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 码思客 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档