4.java之循环结构

1.循环结构:

 重复性做某件事. 一般在Java中不能出现死循环(无限循环).
  作用:减化代码量;维护方便.

2.循环结构组成部分:

循环初始条件:给循环变量赋初值.
循环判断条件:循环终止条件.
循环叠加条件:改变循环变量的值.
循环体:要重复执行的操作.

3.while循环:

解决先判断后执行的重复性操作问题.
3.1:语法:	循环初始条件;
			while(循环判断条件){
				循环体;
				循环叠加条件;
			}
	 
3.2:执行流程:先执行循环初始条件,再执行循环判断条件,如果循环判断条件为false,就跳出循环结构,执行循环结构之后的语句;如果循环判断条件为true,就执行循环体和循环叠加条件,执行完后,再执行循环判断条件,后面重复蓝色字体部分.
3.3:while循环结构特点:
	3.3.1:循环初始条件只在第一次执行一次;循环判断条件至少执行一次;循环体和循环叠加条件至少执行0次.
	3.3.2:while循环先判断后执行.
	3.3.2:while循环中,循环初始条件和循环判断条件不能省略;循环体可以省略;
				循环叠加条件可以省略,只是省略之后变成死循环,一般情况下不能省略.
eg:public static void main(String[] args){
	//循环初始条件
	int i=1;
	//循环判断条件
	while(i<=100){
		//循环体
		System.out.println("第"+i+"次对不起");
		//循环叠加条件
		i++;
	}
  }
练习:1.输出1-10数字;
	2.输出10-1数字;
	3.输出1-100之间偶数之和
	4.输出1-100之间既能初3整除,又能被7整除的数字之和

4.do-while循环:

 解决先无条件执行一次,再判断再执行的重复性操作问题.
	4.1:语法:  循环初始条件;
			  do{
				循环体;
				循环叠加条件;
			  }while(循环判断条件);
			 
	4.2:执行流程:先执行循环初始条件,再执行循环体和循环叠加条件,再执行循环判断条件,如果循环判断条件为false,就跳出循环结构,执行循环结构之后的语句;
			如果循环判断条件为true,就继续执行循环体和循环叠加条件,再执行循环判断条件,重复蓝色字体部分.
	4.3:do-while循环结构特点:
		4.3.1:循环初始条件只在第一次执行一次;循环体和循环叠加至少执行1次,循环条件至少执行一次;
		4.3.2:do-while循环,先无条件执行一次循环体和循环叠加条件,再判断再执行.
		eg:public static void main(String[] args){
		//获得具有从键盘上接收数据的能力
		Scanner input=new Scanner(System.in);
		//循环初值
		String result="";
		do{
			//循环体
			System.out.println("考试");
			//循环叠加
			System.out.println("考试是否合格(y表示合格,其他表示不合格):");
		    result=input.next();
			//循环判断条件
		}while(!result.equals("y"));
   }

5.while VS do-while 的不同点:

5.1:while循环先判断后执行;do-while先无条件执行一次,再判断再执行;
5.2:while循环的循环体和循环叠加可以一次都不执行;do-while循环的循环体和循环叠加至少执行一次.

6.for循环:

解决先判断后执行,且循环次数固定重复性操作的操作.
	6.1:语法:for(循环初始条件1;循环判断条件2;循环叠加条件3){
				循环体;
			}
	6.2:执行流程:循环初始条件1->循环判断条件2->循环体->循环叠加条件3->循环判断条件2
	6.3:for循环结构特点:
		6.3.1:循环初始条件1只在第一次执行一次;循环判断条件2至少执行一次;循环体和循环叠加条件3至少执行0次.
		6.3.2:for循环是先判断后执行.
		6.3.3:for循环后面小括号中两个分号一定不能省略.
		6.3.4:for循环中,循环初始条件1不能直接省略,如果想省略可以在for循环前写;
				循环判断条件2可以直接省略,只是省略后变成死循环;
				循环叠加条件3可以直接省略,只是省略后变成死循环;如果既是那个省略循环叠加条件3,又不想变成死循环,可以将循环叠加条件放在循环体后面.
				for循环中三个条件可以一起省略,只是省略后变成死循环.
		eg:public static void main(String[] args){
		for(int i=1;i<=100;i++){
			//循环体
			System.out.println("第"+i+"次对不起");
		}
   }

7.for ,while,do-while

7.1作用不同:for一般用来解决先判断后执行,且循环次数固定的重复性问题
			while一般用来解决先判断后执行,循环次数不固定的重复性问题
			do-while一般用来解决先无条件执行一次循环体,再判断,再执行重复性问题
	7.2:循环体执行不同:for循环和while循环的循环体可能一次都不执行
					 do-while循环的循环体至少执行一次

8.嵌套循环结构:

在一个循环结构的大括号中,完整包含了另一个循环结构叫嵌套循环结构.
	8.1:所有循环结构之间可以任意嵌套,嵌套要正确.
	8.2:循环结构之间可以多层,一般目前两层嵌套较多.
	8.3:嵌套循环结构的执行特点:外层循环结构循环一次,内层循环结构要从头到尾循环.
	eg:public static void main(String[] args){
		//获得具有从键盘上接收数据的能力
		Scanner input=new Scanner(System.in);
		//外层循环控制班级
		for(int j=1;j<=3;j++){
			//从键盘上接收一个班四名学员成绩
			for(int i=1;i<=4;i++){
				System.out.println("请输入第"+i+"名学生的成绩:");
				double score=input.nextDouble();
			}
		}
	}

9.break:跳出结构.

9.1:break作用:跳出switch结构;跳出当前这一个循环结构;
	eg:public static void main(String[] args){
        for (int i = 1; i <= 3; i++) {
            for (int j = 1; j <= 4; j++) {
                if (j == 2) {
                    break;
                }
                System.out.println("i=" + i + ",j=" + j);
            }
            System.out.println("======");
        }
}

9.2:break跳出指定标记结构:
	语法: 标记名:结构
		  break 标记名;
	eg:public static void main(String[] args){
	//获得具有从键盘上接收数据的能力
	Scanner input=new Scanner(System.in);
	//外层循环控制班级,给外层循环作标记
	a:for(int j=1;j<=3;j++){
		System.out.println("请输入第"+j+"个班级的学生成绩:");
		//内层循环从键盘上接收一个班四名学员成绩
		for(int i=1;i<=4;i++){
			System.out.println("请输入第"+i+"名学生的成绩:");
			double score=input.nextDouble();
			//判断成绩是否符合要求
			if(score<0){
				break a;//跳出指定标记结构
			}
		}
	}
}

10.(知道会用,不是重点)continue:只能用在循环结构.

10.1:continue的作用:结束当前循环结构的本次循环,进入下一次循环
	eg:public static void main(String[] args){
		        for (int i = 1; i <= 3; i++) {
            for (int j = 1; j <= 4; j++) {
                if (j == 2) {
                    continue;
                }
                System.out.println("i=" + i + ",j=" + j);
            }
            System.out.println("======");
        }
	}
	
	10.2:continue可以结束标记结构本次循环,进入下一次循环.
		语法:  标记名:结构
			  continue 标记名;
		eg:public static void main(String[] args){
		//获得具有从键盘上接收数据的能力
		Scanner input=new Scanner(System.in);
		//外层循环控制班级
		b:for(int j=1;j<=3;j++){
			System.out.println("请输入第"+j+"个班级的学生成绩:");
			//内层循环从键盘上接收一个班四名学员成绩
			for(int i=1;i<=4;i++){
				System.out.println("请输入第"+i+"名学生的成绩:");
				double score=input.nextDouble();
				//判断成绩是否符合要求
				if(score<0){
					continue b;//结束外层循环本次录入,接收外层循环下一次录入人
				}
				System.out.println("请继续录入");
			}
		}
	}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值