在实际生活中经常会遇到将同一件事件重复做很多次,例如,在跑步时绕操场跑5圈,在打印试卷时,一套试卷打印50张等。在Java中将一段代码重复执行,称为循环语句。
如下面这段代码:
image.png
输出好好学习这句话,重复了5遍。试想一下,如果重复50遍呢?需要用循环语句来解决了。

一、while循环语句

while是根据条件判断来决定是否执行后面的代码,while循环语句会反复地进行条件判断,只要条件成立,{}内的执行语句就会执行,直到条件不成立,while循环结束。
while循环语句的语法结构如下所示:
image.png
while循环语句的执行流程如下图所示:
image.png
【例1.1-1】阅读下列程序,查看输出结果。
image.png
(1)循环语句每循环一次都要计算条件,当条件为真时,执行循环体{ }的语句,换句话说,条件计算时一定要有假值,否则循环就无法终止。
(2)程序中变量i是控件循环次数的,把变量i叫做循环变量,循环变量具有三要素:

  • 初值:i = 0 即计算开始,初值可以从任何数据开始。
  • 终值:i < 5 即条件为假。
  • 步长:i ++ 控制循环次数,步长不一定为1,可以正数,也可以是负数,如果 i += 2,步长就为2,i < 10。如果步长为负数,初值就大于终值。

    【例1.1-2】输出10以内的偶数(倒序输出)。
    image.png
    【例1.1-3】向银行借款100000元,每月向银行还款是欠款的10%,如果还款少于1000元,按1000元还款,多少个月能还清。
    分析:
    (1)已还款=0,还款月数=0
    (2)当已还款< 100000元继续还款,否则执行(7)
    (3)还款月数+1
    (4)每月还款=(100000-已还款)0.1
    (5)已还款=已还款+当月还款
    (6)跳转到(2)
    (7)还款完成,输出还款月数
    image.png
    【练习】
    1、打印以下图形:
    *

    2、求1-100之间所有奇数之和。
    3、有一张超大的纸张,纸的厚度为0.104毫米,珠峰的高度为8848米,这张纸对折多少次,能达到珠峰的高度。
    4、篮球自由落体弹起高度若为上一次高度的5分之4, 假如篮球第一次弹起的高度为20米,求篮球落地后能弹多少次(弹起高度不小于0.01米)。

    二、for循环语句

    for循环语句是最常用的循环语句,一般用在循环次数已知的情况下,其语法格式如下所示:
    image.png
    在上述语法格式中,for后面的()中包括三部分内容,初始化表达式、循环条件和操作表达式,它们之间用“;”分隔,{}中的执行语句为循环体。
    如果用①表示初始化表达式、②表示循环条件、③表示操作表达式、④表示循环体,则for循环的执行流程如下所示:
    image.png
    【例2.1-1】输出5句好好学习。
    image.png
    【例2.1-2】求1-100之间的奇数之和
    image.png
    【例2.1-3】求1-100之间能被3和5整除的数。
    image.png
    【例2.1-4】
    image.png
    image.png
    【练习】
    5、打印以下图形:
    **
    6、求1-100之间满足勾股定理的数:如果a满足,即image.png

7、求水仙花数。水仙花数是一个3位数,它的个位立方、十位立方、百位立方三个数的和等于数的本身,
image.png,153是水仙花数。

三、do…while循环语句

do…while循环语句和while循环语句功能类似,其语法结构如下所示:
image.png
do…while循环语句的执行流程如下图所示:
image.png
【例3.1-1】求1-100之间的奇数之和
image.png
【例3.1-2】有一张超大的纸张,纸的厚度为0.104毫米,珠峰的高度为8848米,这张纸对折多少次,能达到珠峰的高度。
image.png
【练习】
8、向银行借款100000元,每月向银行还款是欠款的10%,如果还款少于1000元,按1000元还款,多少个月能还清。
9、篮球自由落体弹起高度若为上一次高度的5分之4, 假如篮球第一次弹起的高度为20米,求篮球落地后能弹多少次(弹起高度不小于0.01米)。
10、算式:image.png,当s>10时,求m和n的值。

四、break、continue语句

跳转语句break和continue用于实现循环执行过程中程序流程的跳转,如下图:
image.png

  • break语句:用在switch条件语句和循环语句中,它的作用是终止某个case并跳出switch结构。
  • continue语句:用在循环语句中,它的作用是终止本次循环,执行下一次循环。
  • break和continue语句必须与条件语句结合使用,否则没有意义。

【例4.1-1-1】阅读以下程序,写出程序的输出结果。
image.png

【练习】
11、求1-20之间除了能被5整除的奇数之和。
12、小明和小张在打赌,小张说,2001年到2018年之间没有闰年,小明说2001年到2018年之间有闰年,请问,小张和小明谁说得对?
闰年的条件:能被4整除,但不能被100整除;或能被400整除。

五、循环嵌套

嵌套循环是指在一个循环语句的循环体中再定义一个循环语句的语法结构。while、do…while、for循环语句都可以进行嵌套,并且它们之间也可以互相嵌套,如最常见的在for循环中嵌套for循环,格式如下:
image.png
【例5.1-1-1】打印以下图形。
image.png
比较以下两段代码:
image.png
image.png
【例5.1-1-2】打印以下图形。
image.png
【分析】




*




* * *


* * * * *
* * * * * * *

高h=4,四行
(1) 每行打印2i-1个号,i为行号
(2) 每行打印h-i个空格,i为行号
image.png
*【例5.1-1-3】
求1-100之间的素数。
素数:除了1和本身以外不能被其它数整除的数。
image.png
【练习】
13、打印以下图形
image.png
14、打印九九乘法表。
image.png