1、While循环语句
代码实现:计算1-1000相加的和
Java写法:
![](https://i-blog.csdnimg.cn/blog_migrate/ddc177e319ebc49e4f11852bf0b0cd09.png)
Python写法:
![](https://i-blog.csdnimg.cn/blog_migrate/05f199af04ba3cd73478a78d2971f182.png)
小结:Python不支持自增自减,Java支持自增自减。
2、do...while循环语句
代码实现:当输入密码为123456时,提示密码正确,否则提示请输入6位数密码。
Java使用do...while循环:
![](https://i-blog.csdnimg.cn/blog_migrate/58fa35b31dda4cd165fcc29472f0a24a.png)
由上图可知,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的循环:
![](https://i-blog.csdnimg.cn/blog_migrate/d97e80578ef1a6761cc5aef26f30ac41.png)
通过增加一个变量n来计算是否是首次打印,来控制上图在每次循环中重复打印两次输出的问题,但是又会存在新增了一个变量的内存,以及每次循环多一次运算的问题,暂时不知道这里影响:
![](https://i-blog.csdnimg.cn/blog_migrate/5d5be1e01fb875f143a075e18b6e68c6.png)
3、for循环
代码实现:计算2-100之间的偶数和
Java写法:
![](https://i-blog.csdnimg.cn/blog_migrate/5d612ab204bab007fce03b12c74a37be.png)
Python写法:
![](https://i-blog.csdnimg.cn/blog_migrate/3d6f642840dd2b07ebad29c43cfab5d5.png)
小结:
Java的for循环是在for后边的括号里声明变量、赋值等,而Python需要在循环前先声明变量。
4、foreach语句
foreach语句是for语句的特殊简化版本,不能完全取代for语句,但任何foreach语句都可以改写成for语句。
代码实现遍历整型数组:
Java写法:
![](https://i-blog.csdnimg.cn/blog_migrate/7148d6597414dab2c436d016ede7596c.png)
Python并不支持foreach:
![](https://i-blog.csdnimg.cn/blog_migrate/ccd04d7783565745e4d66db8d3edcf41.png)
5、习题练习
1、1、2、3、5、8、13、21、34、...是一组典型的斐波那契数列,前面两个数相加等于第三个数。请问第N个斐波那契数列值为多少?
思路是通过创建一个列表[1,1],根据输入的数字num,循环num-2次,依次将第3、4...num个斐波那契数加入那列表,列表最后一个元素即为第num个斐波那契数。
![](https://i-blog.csdnimg.cn/blog_migrate/fb87ecd6296141051488ff46dd8c346d.png)
通过Java实现的思路与Python有所区别,未通过创建列表,而是通过声明变量进行循环赋值。
![](https://i-blog.csdnimg.cn/blog_migrate/59de5d61e42300f3dd551e299ee78af7.png)
Java此处的实现逻辑和不通过排序、删除元素的求一个列表中第二大元素的方法一样--通过声明2个变量,将前2个元素赋值给2个变量。变量先比大小,然后将较小的元素依次与列表中第3个、第4个元素依次比较。