Java-循环结构

Day05

5.1 循环概念

循环:
在java中做重复的事情,并且重复的只编写一次

好处:
减少代码的冗余性

常用的循环:
for循环,while循环,do while循环

循环特点:
循环条件,循环操作(循环体)

5.2 for循环

语法格式:

for(表达式1;表达式2;表达式3){
	循环体
}
  • 在for循环中,表达式1:完成变量初始值,如int i = 1;
  • 在for循环中,表达式2:完成循环条件判断,如果条件满足为true则执行循环体,否则执行循环外面的语句,如i <5
  • 在for循环中,循环体主要做重复事情,并且重复事情在循环体中只编写一次。循环体中可以编写java中的任何语句
  • 在for循环中,表达式3:完成变量值的更改,如:i++

综合应用:

class For01 {
	public static void main(String[] args){
		
		//输出1-50所有偶数
		
		/* 第一种方法
		for(int i = 2;i <= 50;i = i+2){
			System.out.println(i);
		}
		*/
		
		/* 第二种方法
		for(int i = 2;i <= 50;i++){
			//判断当前i能否被2整除
			if(i % 2 == 0){
				System.out.println(i);
			}
		}
		*/
		
		//练习:使用for循环输出所有能被6整除的三位数,并且每行显示5个
		int count = 0;//统计能被6整除个数
		for(int i = 100;i <= 999;i++){
			//判断当前数是否为6的倍数
			if(i % 6 == 0){
				System.out.print(i+"\t");
				count++;
				//判断当count为5,10.。。时换行
				if(count % 5 == 0){
					System.out.println();
				}
			}
		}
	}
}

5.3 双重循环

也叫二重循环:在一个完整的循环中又包含另一个完整的循环
结论:当外层循环执行一次,这内层循环执行一遍

class for02 {
	public static void main(String[] args){
		
		//三行每行6个*
		for(int i = 1;i <= 18;i++){
			System.out.print("*");
			if(i % 6 == 0){
				System.out.println("");
			}
		}
		
		//双重循环
		for(int j = 1;j <= 3;j++){
			for(int i = 1;i <= 6;i++){
				System.out.print("*");
			}
			System.out.println();
		}
	}
}

5.4 for循环注意事项

注意:

  • 在for循环中三个表达式都可以省略,但分号必须编写,则出现死循环:按ctrl+c
  • 在for循环中,省略表达式1,则出现编译错误,解决办法:将表达式1编写在for循环上面
  • 在for循环中,省略表达式2,则出现死循环,即条件默认为true
  • 在for循环中,省略表达式3,则出现死循环,解决办法:将表达式3编写在循环体中最后一条语句
  • 当for循环中表达式1变量中的值在循环外使用,则出现编译错误,解决办法:将表达式1变量在for循环外声明
class For03 {
	public static void main(String[] args){
		
		//注意:1.在for循环中三个表达式都可以省略,但分号必须编写,则出现死循环:按ctrl+c
		/*
		for(;;){
			System.out.print("*");
		}
		*/
		
		//注意:2.在for循环中,省略表达式1,则出现编译错误,解决办法:将表达式1编写在for循环上面
		/*
		int i = 1;
		for(;i <= 5;i++){
			System.out.println(i);
		}
		*/
		
		//注意:3.在for循环中,省略表达式2,则出现死循环,即条件默认为true
		/*
		for(int i = 1;;i++){
			System.out.print("*");
		}
		*/
		
		//注意:4.在for循环中,省略表达式3,则出现死循环,解决办法:将表达式3编写在循环体中最后一条语句
		/*
		for(int i = 1;i <= 5;){
			System.out.print(i);
			i++;
		}
		*/
		
		//注意:5.当for循环中表达式1变量中的值在循环外使用,则出现编译错误,解决办法:将表达式1变量在for循环外声明
		int i;
		for(i = 1;i <= 5;i++){
			System.out.println(i);
		}
		System.out.println(i);//6
	}
}

5.5 while循环

语法格式:

while (循环条件){
	循环体
}

执行流程:

首先判断条件,当条件为true时,则执行循环体,然后再判断条件。。。一直到循环条件为false时,循环结束

class While04 {
	public static void main(String[] args){
		
		//练习:while循环输出1-10
		/*
		int i = 1;
		while(i <= 10){
			System.out.println(i);
			i++;
		}*/
		
		//练习:50-100范围内所有奇数
		int i = 50;
		while(i <= 100){
			if(i % 2 != 0){
				System.out.println(i);
			}
			i++;
		}
	}
}

5.6 do while

特点:先执行,然后再判断

语法格式:

do{
	循环体
}while(循环条件);

执行流程:

先执行循环体,然后判断条件,当条件为true时,则继续执行循环体,然后再判断条件

class DoWhile05 {
	public static void main(String[] args){
		Scanner input = new Scanner(System.in);
		char info;//注意:info变量必须编写在循环外面进行声明,否则在循环条件中不能使用
		do{
			System.out.println("编写代码......");
			System.out.println("老师检查是否合格?(y/n)");
			info = input.next().charAt(0);
			//当info值为n时继续编写代码,老师检查
		}while(info == 'n');
	}
}

5.7 三种循环的异同

语法格式:

for(表达式1;表达式2;表达式3){
	循环体
}
while (循环条件){
	循环体
}
do{
	循环体
}while(循环条件);

执行顺序:

  • for循环和while循环:先判断条件为true时,再执行循环体
  • do while循环:先执行循环体然后再判断条件

使用情况不同:

  • 当循环次数固定时,建议使用for循环
  • 当循环次数不固定时,建议使用while循环、do while循环。先判断再执行,则while循环。先执行再判断,则使用do while循环

循环条件第一次为false时:

  • for循环执行0次循环体
  • while循环执行0次循环体
  • do while执行1次循环体
  • 得出for循环和while循环:0次-----N次,do while循环1-----N次

5.8 循环中使用break

class DoWhile06 {
	public static void main(String[] args){
		
		//输入一批整数,计算所有数的和,当输入0时则程序结束
		Scanner input = new Scanner(System.in);
		int sum = 0;
		do{
			System.out.print("请输入一个整数:");
			int num = input.nextInt();
		
			//先判断当前数num是否为0
			if(num == 0){
				//程序结束
				break;//表示中断,当在循环中遇到break则结束当前整个循环即do while,执行循环外面语句
			}
			//对当前num累加求和
			sum += num;
		}
		while(true);
		System.out.println("sum="+sum);
	}
}

5.9 在循环中使用continue语句

表示继续,结束当次循环继续执行下一次循环

class For07 {
	public static void main(String[] args){
		//输入5个人的java成绩,统计成绩在95分以上的人数
		Scanner input = new Scanner(System.in);
		
		int count = 0;//表示统计95分以上的人数 
		for(int i = 1;i <= 5;i++){
			System.out.print("请输入第"+i+"个人的成绩:");
			double score = input.nextDouble();
			
			//判断,当前成绩score,如果在95分及以下则继续输入下一个人的成绩
			if(score < 95){
				continue;//表示继续,结束当次循环继续执行下一次循环
			}
			//统计95分以上的人数
			count++;//count=1
		}
		System.out.println("95分以上人数:"+ count);
	}
}

5.10 break和continue的区别

使用场合不同

  • break:可以在switch case中使用,也可以在循环中使用
  • continue:只能在循环中使用

作用不同

  • break:表示中断。当在switch case中或在循环中遇到break结束当前整个switch case或循环,执行外面的语句
  • continue:表示继续。当在循环中遇到continue时,则结束当次(本次)循环继续执行下一次循环
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值