1、While循环语句
代码实现:计算1-1000相加的和
Java写法:
Python写法:
小结:Python不支持自增自减,Java支持自增自减。
2、do...while循环语句
代码实现:当输入密码为123456时,提示密码正确,否则提示请输入6位数密码。
Java使用do...while循环:
由上图可知,do...while循环循环的是do和while中间的部分代码,while后面的代码并没有循环。
小结:
(1)Python不支持do...while循环,Java支持;
(2)while循环可以理解为,当XXX时,执行YYY,例如第一张截图,当a小于等于1000时,sum+=a,a++。由于条件XXX可能存在为false的情况,循环有可能存在一次都不执行的情况。
(3)do...while循环可以理解为,执行YYY,当XXX时,例如上一张截图。输出请输入密码,当密码不等于123456时。do后面的执行语句至少会执行一次;
遗留问题:
do...while语句暂时不知道如何使用while语句等价替换。原先Python刷题也只是通过While True进行模拟,但循环本身没有退出循环。以下图Python为例,并不是很容易用while来模拟do...while的循环:
通过增加一个变量n来计算是否是首次打印,来控制上图在每次循环中重复打印两次输出的问题,但是又会存在新增了一个变量的内存,以及每次循环多一次运算的问题,暂时不知道这里影响:
3、for循环
代码实现:计算2-100之间的偶数和
Java写法:
Python写法:
小结:
Java的for循环是在for后边的括号里声明变量、赋值等,而Python需要在循环前先声明变量。
4、foreach语句
foreach语句是for语句的特殊简化版本,不能完全取代for语句,但任何foreach语句都可以改写成for语句。
代码实现遍历整型数组:
Java写法:
Python并不支持foreach:
5、习题练习
1、1、2、3、5、8、13、21、34、...是一组典型的斐波那契数列,前面两个数相加等于第三个数。请问第N个斐波那契数列值为多少?
思路是通过创建一个列表[1,1],根据输入的数字num,循环num-2次,依次将第3、4...num个斐波那契数加入那列表,列表最后一个元素即为第num个斐波那契数。
通过Java实现的思路与Python有所区别,未通过创建列表,而是通过声明变量进行循环赋值。
Java此处的实现逻辑和不通过排序、删除元素的求一个列表中第二大元素的方法一样--通过声明2个变量,将前2个元素赋值给2个变量。变量先比大小,然后将较小的元素依次与列表中第3个、第4个元素依次比较。