跟着姜少学Java基础编程之八:循环结构
2017-10-19 16:22
288 查看
本篇主要介绍Java语言中的循环结构。
循环的两个要素:循环条件与循环体。
Java中的循环结构有while、do-while和for循环三种。
其中,布尔表达式就是循环条件,花括号中的代码块即为循环体。
执行逻辑:
1)判断布尔表达式,如果为false,则不执行代码块,直接结束整个循环,如果为true,则执行循环体中的代码块。
2)执行完循环体之后,再次判断布尔表达式,重复步骤1)。
案例分析:
上述代码中,while循环在年龄没有达到18岁的时候,循环输出“您未成年。”每次执行循环体,年龄就会加一,直到年龄达到18岁后,结束while循环,执行循环后面的输出“恭喜,您已成年!”。
要注意:一般情况下,循环体中需要有语句改变循环条件,使循环条件有为false的可能性,防止变成死循环。
while案例2
案例分析:
上述代码从表面上看,貌似是一个死循环,会一直输出“您未成年。”但实际上并非如此,执行较长的一段时间后,会跳出循环,输出“恭喜,您已成年!”。
原因是,age是int型数据,一直减小,达到int的下边界,再减小,就会溢出,变为很大的正数。这样,就跳出了while循环。
如果想要构造死循环,推荐使用while(true){}这种形式。
do后面的花括号中的代码块为循环体,while中的布尔表达式为循环条件,注意,do-while的最后面必须要加一个分号,这个是与while不同之处。
执行逻辑:
1)首先执行循环体中代码块
2)执行完循环体后判断布尔表达式,如果为false,则跳出循环,如果为true,则再次执行循环体中的代码块。
3)重复步骤2),直到循环条件为false,跳出循环。
上述代码中,钱数为220元时,总共可以吃2顿饭,也就是循环体的代码循环了2次。但是,如果将money的初始值改为20,仍然可以吃一顿饭,虽然吃一顿饭需要100元,但如果是先吃了饭,再结账,虽然兜里的钱不够结账的,但饭已经吃完了,这就是传说中的霸王餐!!!
因此,do-while有一个特点,循环体至少会被执行一次。
其中,表达式1一般用来对循环计数的变量进行初始化(只执行一次)。表达式2为布尔表达式,是循环条件。表达式3一般是对循环计数的变量进行改变。
其执行逻辑:
1)执行初始化表达式1
2)进行表达式2的判断
3)根据表达式2的判断结果执行:
如果为true,则执行循环体中的代码块。
如果为false,则跳出循环,不在执行4)和5)步。
4)执行表达式3
5)重复执行2)到4)步,直至跳出循环。
比如:循环接收用户输入的内容,并原样输出,如果用户输入q则退出程序。
求和:1+2+3+4+6+7+…+99+100(注意没有5)
而continue只能用于循环中。
2、break是直接结束整个循环;continue是即跳过本次循环体中余下尚未执行的语句,接着再一次进行循环的条件判定,继续执行下一次及后面的循环。
下一篇将介绍Java中的数组。
循环结构
生活中,循环随处可见,比如春夏秋冬四季不断更替,白天黑夜不断交替,路口的红绿灯由绿到黄到红不断更替,这些都属于循环。代码中的循环结构,是指重复多次的执行一个代码块。循环的两个要素:循环条件与循环体。
Java中的循环结构有while、do-while和for循环三种。
8.1 while循环
8.1.1while循环语法
语法如下:while(布尔表达式){ 代码块; }
其中,布尔表达式就是循环条件,花括号中的代码块即为循环体。
执行逻辑:
1)判断布尔表达式,如果为false,则不执行代码块,直接结束整个循环,如果为true,则执行循环体中的代码块。
2)执行完循环体之后,再次判断布尔表达式,重复步骤1)。
8.1.2 while的应用
while案例1public static void main(String[] args){ int age = 10; while(age<18){ System.out.println("您尚未成年。"); age++;//改变循环条件 } System.out.println("恭喜,您已成年!"); }
案例分析:
上述代码中,while循环在年龄没有达到18岁的时候,循环输出“您未成年。”每次执行循环体,年龄就会加一,直到年龄达到18岁后,结束while循环,执行循环后面的输出“恭喜,您已成年!”。
要注意:一般情况下,循环体中需要有语句改变循环条件,使循环条件有为false的可能性,防止变成死循环。
while案例2
int age = 10; while(age<18){ System.out.println("您未成年。"); age--; } System.out.println("恭喜,您已成年!");
案例分析:
上述代码从表面上看,貌似是一个死循环,会一直输出“您未成年。”但实际上并非如此,执行较长的一段时间后,会跳出循环,输出“恭喜,您已成年!”。
原因是,age是int型数据,一直减小,达到int的下边界,再减小,就会溢出,变为很大的正数。这样,就跳出了while循环。
如果想要构造死循环,推荐使用while(true){}这种形式。
8.2 do-while循环
8.2.1 do-while语法
do{ 代码块; }while(布尔表达式);
do后面的花括号中的代码块为循环体,while中的布尔表达式为循环条件,注意,do-while的最后面必须要加一个分号,这个是与while不同之处。
执行逻辑:
1)首先执行循环体中代码块
2)执行完循环体后判断布尔表达式,如果为false,则跳出循环,如果为true,则再次执行循环体中的代码块。
3)重复步骤2),直到循环条件为false,跳出循环。
8.2.2 do-while应用
int money = 220; do{ //吃一顿饭需要100元 System.out.println("吃一顿饭花费一百元。"); money -= 100; }while(money>100);
上述代码中,钱数为220元时,总共可以吃2顿饭,也就是循环体的代码循环了2次。但是,如果将money的初始值改为20,仍然可以吃一顿饭,虽然吃一顿饭需要100元,但如果是先吃了饭,再结账,虽然兜里的钱不够结账的,但饭已经吃完了,这就是传说中的霸王餐!!!
因此,do-while有一个特点,循环体至少会被执行一次。
8.3 for循环
8.3.1 for循环的语法
如果循环的次数是固定的,一般使用for循环,其语法如下:for(表达式1;表达式2;表达式3){ 代码块; }
其中,表达式1一般用来对循环计数的变量进行初始化(只执行一次)。表达式2为布尔表达式,是循环条件。表达式3一般是对循环计数的变量进行改变。
其执行逻辑:
1)执行初始化表达式1
2)进行表达式2的判断
3)根据表达式2的判断结果执行:
如果为true,则执行循环体中的代码块。
如果为false,则跳出循环,不在执行4)和5)步。
4)执行表达式3
5)重复执行2)到4)步,直至跳出循环。
8.3.2 for循环的应用
求和:1+2+3+4+5+…+97+98+99+100int sum = 0; for(int i=1;i<=100;i++){ sum += i; } System.out.println("和为:"+sum);//输出和为5050
8.4 break与continue
8.4.1 break
循环过程中,如果符合某种条件时,需要终止循环,可以使用break关键字来退出循环。比如:循环接收用户输入的内容,并原样输出,如果用户输入q则退出程序。
String str = ""; Scanner scanner = new Scanner(System.in); while(true){ System.out.println("请输入内容:"); str = scanner.nextLine(); if(str.equals("q")){ break;//如果是q则跳出整个循环 } System.out.println(str); } System.out.println("已退出程序。");
8.4.2 continue
如果在循环过程中,如果想在某个条件下调过其中的某一次循环,继续下一次循环的话,需要使用continue语句。求和:1+2+3+4+6+7+…+99+100(注意没有5)
int sum = 0; for(int i=1;i<=100;i++){ if(i==5){ continue;//结束第5次循环,继续执行后面的循环 } sum += i; } System.out.println("和为:"+sum);//输出和为5045
8.4.3 break与continue的区别
1、break不仅可以用于循环中,还可以用于switch-case语句中;而continue只能用于循环中。
2、break是直接结束整个循环;continue是即跳过本次循环体中余下尚未执行的语句,接着再一次进行循环的条件判定,继续执行下一次及后面的循环。
下一篇将介绍Java中的数组。
相关文章推荐
- 跟着姜少学Java基础编程之六:选择结构之if分支
- 跟着姜少学Java基础编程之七:选择结构之switch
- 跟着姜少学Java基础编程之四:运算符
- 跟着姜少学Java基础编程之十一:面向对象-类与对象
- 黑马程序员_java编程基础第3天1-5 循环结构while;do while;for
- 跟着姜少学Java基础编程之二:类型转换
- 跟着姜少学Java基础编程之九:数组
- 跟着姜少学Java基础编程之一:数据类型
- 跟着姜少学Java基础编程之五:Scanner、Random、String
- 跟着姜少学Java基础编程之十三:面向对象-成员方法
- Java笔记1 Java编程基础<2>循环语句、函数(重载)、变量和数组的内存结构
- 跟着姜少学Java基础编程之三:变量
- 黑马程序员_java编程基础第3天1-5 循环结构while;do while;for
- 跟着姜少学Java基础编程之十:方法
- 跟着姜少学Java基础编程之十二:面向对象-构造方法
- Java基础(极客)——06、Java循环结构语句的特点和使用方法
- 黑马程序员——Java基础(流程控制语句、选择结构、循环结构、方法)
- JAVA基础(2)——分支和循环结构
- java基础第三讲——顺序、条件、循环结构
- 黑马程序员—Java基础—java基础语法:数据结构,运算符,选择结构,循环结构