Java SE笔记
四、循环语句
1.循环语句
- 循环语句功能
- 在循环条件满足的情况下,反复执行特定代码
- 循环语句的三个组成部分
- 初始化部分(init_statement)
- 循环条件部分(test_exp)
- 循环体部分(body_statement)
- 循环语句分类
- while 循环
- do/while 循环
- for 循环
2.while循环结构
先判断,再执行。适合循环次数不确定的情况下
- 语法结构:
[初始化语句]
while(条件表达式) {
代码块
}
条件表达式结果为布尔值,true执行代码块。
代码块执行完毕以后 ,重新回到while进行判断条件表达式结果。直到条件表达式结果为false,退出循环。执行0-n次。
打印0-5的数字
int i = 0;
while(i<6){
System.out.println(i);
i++;
- 用while循环实现猜密码功能
int password=1234;
Scanner scanner = new Scanner(System.in);
System.out.println("请输入密码");
int inputpasswd = scanner.nextInt();
while(password != inputpasswd){
System.out.println("密码错误");
System.out.println("请再次输入密码");
inputpasswd = scanner.nextInt();
}
System.out.println("猜对了");
请输入密码
1111
密码错误
请再次输入密码
1234
猜对了
死循环
int count = 0;
while(count < 10) {
System.out.println("不停的执行死循环"+count);
count--;
}
System.out.println("永远无法跳出的循环体");
3.do-while循环结构
先执行,再判断。适合循环次数不确定的情况下
- 语法结构
[初始化语句]
do {
代码块
}
while(条件表达式);
代码块执行完毕以后 ,到while判断条件表达式的结果。直到条件表达式结果为false,退出循环,执行1-n次
条件表达式结果为布尔值,true执行代码块
循环打印0-5的数字
int i = 0;
do{
System.out.println(i);
i++;
}
while(i<6);
4.for循环结构
先判断,再执行。适合循环次数确定的情况下
- 语法结构
for(初始化;判断条件;参数变更)
{
代码块
}
初始化:变量初始化
判断条件:判断条件,结果为true,执行代码块,false结束循环
参数变更:变量变化范围
- 打印0-3的数字
for(int i=0;i<4;i++){
System.out.println(i);
}
- for循环中的初始值和变量更新,可以在括号中省略。
int i=0;
for(;i<4;){
System.out.println(i);
i++;
}
- 如果变量不更新,则始终满足条件,或者省略判断条件,会造成无限循环。
5. 控制循环结构
Java语言没有提供goto语句来控制程序的跳转,这种做做法提高了流程控制的可读性,但降低了程序流程的灵活性。为了弥补这种不足,Java提供了continue和break来控制循环结构。除此之外,return可以结束整个方法,当然也结束一次循环.
跳转语句:break-跳出来
- 在for循环中使用break是强制终止循环
- 打印0-5的数字
int i=0;
while(true){
System.out.println("数字"+i);
i++;
if(i==6){break;}
}
数字1
数字2
数字3
数字4
数字5
break和continue
break使用在switch和循环结构中
continue只能使用在循环结构中
break和continue语句不仅可以结束其所在的循环,还可以直接结束其外层循环。此时需要在break或continue后面紧跟一个标签,这个标签用于标识一个外层循环。
Java中的标签就是一个紧跟着英文冒号(:)的标识符。与其他语言不同的是,Java中的标签只有放在循环语句之前才有用.
特殊流程控制语句说明
- break只能用于switch语句和循环语句中。
- continue 只能用于循环语句中。
- 标号语句必须紧接在循环的头部。标号语句不能用在非循环语句的前面。
- break和continue之后不能有其他的语句,因为程序永远不会执行break 和 continue之后的语句。
outher:
for(int i = 1; i<= 5 ; i ++) {
for(int j=1; j<=5;j++) {
if(j==3) {
break outher; //continue
}
System.out.println("i的值="+i +"\tj的值="+j);
}
}
i的值=1 j的值=1
i的值=1 j的值=2
使用return结束方法
return关键字并不是专门用于结束循环的,return的功能是结束一个方法。当一个方法执行到一个return语句时这个方法将被结束。Java程序中大部分循环被放在方法中执行,例如前面介绍的所有循环案例,一旦在
循环体内执行一个return语句,return语句就会结束该方法,循环自然也随之结束.
for(int i = 1; i<= 5 ; i ++) {
for(int j=1; j<=5;j++) {
if(j==3) {
return;
}
System.out.println("i的值="+i +"\tj的值="+j);
}
}
i的值=1 j的值=1
i的值=1 j的值=2
总结
6.嵌套循环
如果把一个循环放在另一个循环体内,那么就可以形成嵌套循环,嵌套循环可以是for循环嵌套while循环,也可以是while循环嵌套do while循环…即各种类型的循环都可以作为外层循环,也可以作为内层循环。
假设外层循环的循环次数为n次,内层循环的循环次数为m次,那么内层循环的循环实际上需要执行m * n 次,嵌套循环就是把内层循环当成外层循环的循环体。当只有内层循环的循环条件为false时, 才会完全跳出内层循环,才可以结束外层循环的当次循环,开始下一次循环.
- 嵌套循环口诀:
外层循环走一次,内层循环走一圈;
外层循环控制行数,内层循环控制列数; - 九九乘法表
for(int i=1;i<=9;i++){
for(int j=1;j<=i;j++){
System.out.print(i+"*"+j+"="+i*j+"\t");
}
System.out.println("");
}