小白Java循环结构

学习目标:

**1.掌握while语句、do…while语句、for循环语句的使用
2.掌握break语句和continue语句的使用
3.理解嵌套循环的执行过程
**

在编写程序过程中,往往出现相同类型操作需要重复出现,如实现1+2+…+100,则需要做99次加法,这类问题使用循环语句解决,可以使问题变得简单。即循环语句用于实现语句块的重复执行。根据所处理问题的具体情况, Java 中提供了四种不同的循环机制: while 循环、 do … while 循环、 for 循环和 foreach 循环。本章介绍前三种循环机制。

内容:

1.1 while语句及do…while语句

while 循环是一种用于重复执行特定代码块的循环语句,在循环开始前先判断条件是否成立,条件成立才会执行循环体里面的代码,不成立则不会进入循环,执行一轮循环结束后再次返回判断条件,仍然满足条件则会继续执行代码块,直到不满足条件了才会跳出循环,***代码可能一次都不会执行!***使用循环可以减少大量的代码复写!

while (条件表达式) {
循环体代码块(语句)
}

在这里插入图片描述
打印1-10之间的整数数字[使用while]

int i = 1;
	while (i <= 5){
	    System.out.println("i="+i);
	    i++;//累加
	}

结果为

i=1
i=2
i=3
i=4
i=5

do…while与while的不同在于do…while先执行一次代码块后才开始判断条件是否满足,如果条件满足的话,就会继续重复执行代码块,直到条件判断不满足才跳出循环。代码一定会执行一次!

do{
循环体代码块(语句)
}while(条件表达式);

在这里插入图片描述
打印1-5之间的整数数字[使用do…while]

int i=1;
   do{
       System.out.println("i="+i);
       i++;
   }while(i<=5);

执行结果为

i=1
i=2
i=3
i=4
i=5

while语句和do…while语句需要注意一下分号的使用
在这里插入图片描述

1.2 for循环语句

for循环使用更广泛,for 循环在代码执行前就要先判断条件表达式是否满足的循环语句。如果条件表达式不满足,那么它的循环语句不会执行。for 语句通常使用在知道循环次数的循环中。

语法

for(初始化表达式1;布尔表达式2;条件表达式3){
语句块;
}

三个条件表达式的含义分别是:

**- 表达式1:赋值语句(循环结构的初始值 int i=1;)

  • 表达式2:条件语句(循环结构的循环条件 i<=50;)
  • 表达式3:迭代语句(循环结构的迭代语句,用来改变循环变量的初始值 i++/i–)**

for循环三个表达式必须使用分号(;)隔开!

在这里插入图片描述

for 循环语句执行顺序是:先执行初始化表达式 1 进行初始化赋值,后判断布尔表达式 2 的值是否为 True,如果为 True,则执行循环体语句块,最后返回条件表达式3完成累加,再判断表达式2,依次这样循环,直到表达式2的值为False,结束循环。
在这里插入图片描述

值得说明的是for语句可以三个表达式都省略,但是省略表达式2会陷入死循环,除非在循环中使用break语句跳出,省略表达式1的前提是在for语句之前已经给循环变量赋初值。
在这里插入图片描述
在这里插入图片描述
打印1-30之间能整除7的数 [使用break语句]

public static void main(String[] args){
	for(int i=1;i<=30;i++){
		if(i%7==0){
			System.out.println(i);
		}
	}
}

结果为

7
14
21
28

当 for 语句中循环体全为空时,没有循环初值,不判断循环条件,循环变量不改变,此时无条件执行循环体,形成死循环,应尽量避免!在使用循环时:
在这里插入图片描述

条件表达式中也通常使用boolean类型的表达式,同时为了避免无限循环情况发生,可以使用break语句来跳出循环,或者使用continue来终止本次循环

1.3 break和continue语句

前面的循环示例中,每一段代码都是必须循环完毕后自动退出,才继续执行其他代码,如果希望在某个循环中间中断,符合某条件再继续循环,用什么办法呢? Java 提供了两个循环中断控制语句, break 语句和 continue 语句。

1. break语句

break语句用于跳出一个循环体或者说是结束该循环,不管是哪种循环,只要碰到了break语句都会直接结束该循环,开始执行循环后面的代码,值得注意的是break只能在循环体内和switch中使用!!

例如 从键盘输入成绩,直到-1为止,求平均成绩

public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		System.out.print("请输入成绩:");
		int mark = 0;//成绩
		int sum = 0;//成绩总和
		int num = 0;//存储成绩个数
		double avg = 0;//平均成绩
		while (true) {
			mark = scan.nextInt();
			if(mark==-1){
				break;//满足条件跳出循环
			}
			num += 1;
			sum += mark;
			avg = sum / num;
		}
		System.out.println("平均成绩为:" + avg);
	}

2. continue语句语句

continue语句的作用是不再执行本次循环体中剩下尚未执行的语句,立即进行下一次的循环条件判定,可以理解为只是跳过本次循环,接着开始下一次循环。
需要注意的是,continue语句并没有终止整个循环!!break是终止整个循环!!!

输出1-10的数中除了5的其他全部整数 [使用continue语句]

public class Test4 {
    public static void main(String[] args) {
        for(int i=0; i<=10; i++){
            if(i==5){
                continue;
            }
            System.out.print(i+" ");
        }
    }
}

结果为

0 1 2 3 4 6 7 8 9 10

只能在循环体内和switch语句体内使用break

1.4 嵌套循环

嵌套循环即多重循环,在一个循环体内又出现一个或者多个循环体,这就称为循环嵌套或嵌套循环。
外循环执行一次,内循环全部执行完,再进入下一次外循环!

    public static void main(String[] args){
        for(int i = 1;i <= 7;i++){
            for(int j = 1;j <= i;j++){
                System.out.print("*");
            }
            System.out.println();
        }
    }

输出结果为
在这里插入图片描述
(这里,大循环控制行数,小循环控制列数)

九九乘法表也是使用嵌套循环实现

public static void main(String[] args) {
     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();
     }
}

结果为
在这里插入图片描述
实际开发中,最多见到的嵌套循环是两层,一般不会出现超过三层的嵌套循环。

到这里就暂时结束了,有不足或者不对的地方欢迎大家补充或指正!

  • 30
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值