您的位置:首页 > 编程语言 > Java开发

跟着姜少学Java基础编程之八:循环结构

2017-10-19 16:22 288 查看
本篇主要介绍Java语言中的循环结构。

循环结构

生活中,循环随处可见,比如春夏秋冬四季不断更替,白天黑夜不断交替,路口的红绿灯由绿到黄到红不断更替,这些都属于循环。代码中的循环结构,是指重复多次的执行一个代码块。

循环的两个要素:循环条件循环体

Java中的循环结构有while、do-while和for循环三种。

8.1 while循环

8.1.1while循环语法

语法如下:

while(布尔表达式){
代码块;
}


其中,布尔表达式就是循环条件,花括号中的代码块即为循环体。

执行逻辑:

1)判断布尔表达式,如果为false,则不执行代码块,直接结束整个循环,如果为true,则执行循环体中的代码块。

2)执行完循环体之后,再次判断布尔表达式,重复步骤1)。

8.1.2 while的应用

while案例1

public 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+100

int 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中的数组。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息