循环结构

1.循环结构:重复性做某件事。
1.1:循环结构作用:减化代码。

2.循环结构组成部分
2.1:循环初始值(初始化语句):开始执行循环的初值。
2.2:循环条件(判断条件):满足条件就执行循环,不满足就跳出循环。
2.3:循环叠加(循环控制语句):改变循环的条件值。
2.4:循环体:要重复做的事。
注意:变量在那个结构中声明,它就只能在声明的结构的大括号中使用,跳出这个大括号,变 量就无用。

3.for循环:先判断后执行的,循环次数固定的重复性问题
3.1:for(初始化语句1;判断条件2;循环控制语句3){
循环体;
}

3.2:执行流程:先执行初始化语句1,再判断判断条件2,如果判断条件2为false,就跳出循环结 构,执行循环之后的语句;如果判断条件2为true,就执行循环体,再执行循 环控制语句3,再判断判断条件2,如果判断条件2为false,就跳出循环结 构,执行循环之后的语句;如果循判断条件2为true,就执行循环体, 再执行循环控制语句3,重复蓝色字体部分。
3.3:执行特点:
3.3.1:在for循环结构中,循环初始值1只在第一次执行,只执行一次;
循环条件2每次循环都要执行一次,至少执行一次;
循环叠加3在第二次循环时开始执行,至少执行0次;
循环体至少执行0次。
3.3.2:在for循环结构中的小括号中,两个分号一定不可以省略。
3.3.3:for循环的循环初始值1不能直接省略,如果省略了,可以在写在for循环之前。
循环条件2可以省略,省略后变成死循环;
循环叠加3可以省略,直接省略后变成死循环,如果不想变成死循环,循环叠加3 可以写在循环体后面。
3.3.4:for循环中,初始化语句1和循环控制语句3的条件可以由一到多个式子组成,式子 之间用逗号分隔;判断条件2可以一到多个式子组成,式子之间用逻辑运算 符。

	eg:public static void main(String[] args){
	for(int i=1;i<=10;i++){
		System.out.println("第"+i+"次:我明天一定会早起");
	}
}

public static void main(String[] args){
	for(int i=1,j=10;i<=10&&j>=1;i++,j--){
		System.out.println("i+j="+(i+j));
	}
}

4.while循环:解决先判断后执行并且循环次数不因定的重复性问题。
4.1:语法: 循环初始化语句1;
while(循环判断条件){
循环体;
循环叠加;
}

4.2:执行流程:先执行初始语句,再执行循环判断条件,如果判断条件为false,就跳出循环 结构,执行后面的代码;如果判断条件为true,就执行循环体和循环叠加, 重复蓝色字体部分。
4.3:执行特点:
4.3.1:循环的初始化语句只在第一次执行,只执行一次;
循环的判断条件每次都会执行,至少执行一次。
循环体和循环叠加至少执行0次。

	eg:public static void main(String[] args){
	//循环初始语句
	int i=1;
	//判断条件
	while(i<=10){
		//循环体
		System.out.println(i+"我一定要早起");
		//循环叠加
		i++;
	}
}

5.do-while:解决先无条件执行一次循环体,再判断再执行的重复性的问题。
5.1:语法:初始化语句;
do{
循环体;
循环叠加;
}while(判断条件);

5.2:执行流程:先执行循环的初始化语句,再执行循环体和循环叠加,再判断循环判断条件如果判断条件为false,就跳出循环结构,执行后面代码;如果判断条件为true,就执行循环体和循环叠加,重复蓝色字体部分。
5.3:执行特点:
5.3.1:循环的初始化语句只执行一次;循环体和循环叠加至少执行一次;判断条件至少执行一次。

	eg:public static void main(String[] args){
	//获得具有从键盘上接收数据的能力
	Scanner input=new Scanner(System.in);
	String answer="";
	do{
		//循环体
		System.out.println("默写Java语法");
		//循环叠加
		System.out.println("是否默写合格?(y/n)");
		answer=input.next();
	}while(!answer.equals("y"));
}

6.for vs while vs do-while
6.1:相同点:
6.1.1:都是用来解决重复性问题
6.1.2:都有循环结构的四要素组成
6.2:不同点:
6.2.1:应用场景不同:for循环一般用来解决先判断后执行并且循环次数固定的问题;
while循环一般用来解决先判断后执行并且循环次数不固定的问题;
do-while循环一般用来解决先无条件执行一次,再判断再执行的重复问题;
6.2.2:替换性不同:
能用for循环解决的问题,也可以用while循环解决,不一定能用能用do-while;
能用while循环解决的问题,也可以用for循环解决,不一定能用能用do-while;
能用do-while循环解决的问题,都可以用for循环或while循环解决;

7.嵌套循环结构:将一个循环结构写在另一个循环结构的循环体中。
所有的循环结构之间都可以相互嵌套,嵌套要正确。
循环结构之间可以多层嵌套,一般常用2,3层嵌套.
嵌套循环结构执行特点:外层循环执行一次,内层循环从头执行到尾。

题目:请从键盘上接收三个班各四名学员的Java成绩
	分解题目:先从键盘上接收一个班四名学员的Java成绩
			再接收三个班的成绩
eg:public static void main(String[] args){
	//获得具有从键盘上接收数据的能力
	Scanner input=new Scanner(System.in);
	//外层循环控制班级
	for(int j=1;j<=3;j++){
		System.out.println("\n请输入第"+j+"班的成绩:");
		//请从键盘上接收一个班四名学员的Java成绩
		for(int i=1;i<=4;i++){
			System.out.println("请输入第"+i+"名学员的Java成绩:");
			double score=input.nextDouble();
		}
	}
}

8.Java中break,continue,return
8.1:break:只能用switch结构或者循环结构中,跳出结构。
8.1.1:break用在switch结构中,跳出switch结构。
8.1.2:break用在循环结构,跳出当前循环结构。

		eg:public static void main(String[] args){
	//获得具有从键盘上接收数的能力
	Scanner input=new Scanner(System.in);
	//外层循环控制班级
	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>100||score<0){
				break;//跳出内层循环结构
			}
		}
	}
}

	8.3.3:(扩展)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>100||score<0){
				break a;//跳出标签名指定循环结构
			}
		}
	}
}
		
8.2:continue:只能用在循环结构中,结束本次循环,进入下一次循环。
	eg:public static void main(String[] args){
	//获得具有从键盘上接收数的能力
	Scanner input=new Scanner(System.in);

	for(int i=1;i<=4;i++){
		System.out.println("请输入第"+i+"名学员的成绩:");
		double score=input.nextDouble();
		if(score>100||score<0){
			continue;//结束本次循环,进入下一次循环
		}
		System.out.println("成绩:"+score);
	}
}

8.3:return:只能用在方法中,结束方法;结束方法的同时返回一个值。

9.扩展:生成随机数
9.1:生成min-max随机数包括min和max的公式:
int num=(int)(Math.random()*(max-min+1)+min);
eg://生成[0,1)之间随机数
double num1=Math.random();

	//生成[0,10]之间随机整数   
	int num2=(int)(Math.random()*11);
	
	//生成两位随机整数[10,99] 10<=r<100  
	int num3=(int)(Math.random()*90+10);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值