JAVASEday4(循环语句与方法)

JAVASEday4(循环语句与方法)

一、

循环语句:让一些代码重复执行多次

我们在使用循环语句前先思考: 是否存在一些代码想要重复执行多次,如果是可以使用java中的循环
for 次数循环 : 明确循环次数
while 条件循环 : 不明确循环次数,但是是否结束循环根据一个条件决定
do…while

for(条件初始化;条件判断;条件变化){
重复执行的循环体语句;
}

条件初始化: 声明一个变量 i,并且第一次赋值,这个变量i就是条件

条件判断: 针对变量i的值的判断,结果为boolean类型,结果决定下一次循环是否能够执行,true就是执行,false整个结束当前循环结构

条件变化(迭代因子): 变量i自身值的改变,最终要让条件i不满足条件判断,用来结束循环

执行流程:
1.条件初始化
2.条件判断,满足条件,执行循环体语句,不满足条件直接结束循环
3.条件变化
重复执行2,3步骤

注意: for循环的条件i是属于当前这个循环的,可以在循环的(),{}中使用
循环体中语句只有一句,前后的{}可以省略

for循环
public static void main(String[] args){
		//死循环  控制台中通过ctrl+c终止程序执行
		/*
		for(;;){
			
		}
		*/
		
		for(int i=1;i<=10;i++)
			System.out.println(i);
		
		

		//计算1~10之间所有整数的和
		int sum = 0; //和
		for(int i=1;i<=10;i++){
			sum+=i; //sum=sum+i;
			System.out.println(i);
		}
		System.out.println(sum);
		//System.out.println(i); 作用域不对
	
	}
while条件循环

条件初始化;
while(条件判断){
循环体语句;
条件变化;
}

注意: 在while循环中条件初始化不属于当前 while循环,注意变量作用域的问题
for循环的条件i属于当前循环
循环体语句只有一句,前后的{}可以省略

	public static void main(String[] args){
		//死循环
		/*
		while(true){
			System.out.println("死循环,哈哈哈!!!!");
		}
		*/
		
		
		//打印1~10之间的整数
		for(int i=1;i<=10;i++){
			System.out.println(i);
		}
		
		int i=0; //条件初始化
		while(i<=10){
			i++;
			System.out.println(i);
		}
		System.out.println(i); //作用域属于当前main方法
	}
do while (了解)

while(条件判断){
循环体;
}

对比

do{
循环体;
}while(条件判断);
当{}中的语句体只有一句,前后的{}可以省略

区别 :
while循环先判断后执行
do…while 先执行后判断
do…while的语句体无论是否满足条件判断,都至少会执行一次

public static void main(String[] args){
		//1.打印1~100之间的整数
		int i = 1;
		/*
		while(i<=100){
			System.out.println(i);
			i++;
		}
		*/
		do{
			System.out.println(i);
			i++;
		}while(i<=100);
		//变量i的作用域是当前main方法,不属于do..while循环
		System.out.println("不满足条件的i="+i); //101
		
		/*
		while(false){
			System.out.println("不满足while循环");
		}
		*/
		do
			System.out.println("不满足while循环");
		while(false);
	}

二、

break与continue与return之间的区别?

break:
作用 : 结束 终止
应用场景: switch 循环
continue:
作用 : 结束本次循环,直接进入到下一次循环
应用场景 : 循环中使用

public static void main(String[] args){
		//查询1~10之间的数据,查到2个能被3整数的数结束
		//重复做判断,查找->循环
		//确定变量变化的范围 1~10 -> for
		int count = 0; //计数器
		for(int i=1;i<=10;i++){
			if(i%3==0){
				System.out.println(i);
				count++;
				if(count==2){
					break;
				}
			}
		}
		//死循环一般配合break关键字使用,让死循环有停下来的时机
		int j = 1;
		while(true){
			System.out.println(j);
			if(j==5){
				break;
			}
			j++;
		}
		
		System.out.println("死循环后面的代码");
		
		
		//打印1~10之间的数据,遇到5跳过
		for(int i=1;i<=10;i++){
			if(i==5){
				continue; //跳过本次,直接进入下一步,下面多少行语句体都不执行了
			}
			System.out.println(i);
		}
		
		//击鼓传花
		//敲鼓的人: 随机的--> 随机数
		//学生: 循环  学生编码
		//当学生编号与随机数相等时候,游戏结束
		//随机数 [1,27]
		int num = (int)(Math.random()*(27-1+1)+1);
		
		//循环控制传花过程
		//声明一个变量作为学生编号
		int sno = 1;
		while(true){
			if(sno==num){
				System.out.println(sno+"中奖了!!!!");
				break;
			}
			//时间延迟几秒,模拟传花需要花费的时间
			try{
				Thread.sleep(500);  //ms  1000ms = 1s
			}catch(Exception e){
			}
			System.out.println("花传到"+sno+"号学生手里!!!");
			sno++;
		}
		
		
		
	}

三、

循环嵌套

​ 循环中嵌套循环
​ 实现功能,每一个for循环中存在一个变量条件i
​ 外层循环变化一次,内层循环变化一轮

/*打印 
		*****
		*****
		*****
		*****
		*****
*/
public static void main(String[] args){
		//外层循环 i 行
		for(int i=1;i<=5;i++){
			//内层循环控制列,执行完毕,代表这一行中的所有列执行完毕
			for(int j=1;j<=5;j++){
				System.out.print(i+"---->"+j+" ");
			}
			//换行
			System.out.println();
		}
		
		for(int i=1;i<=5;i++){
			//内层循环控制列,执行完毕,代表这一行中的所有列执行完毕
			for(int j=1;j<=5;j++){
				System.out.print("* ");
			}
			//换行
			System.out.println();
		}

	}

当存在循环嵌套的时候,我们在内层循环中使用break与continue,我们需要知道是执行内存还是外层
默认针对离break与continue关键字最近的内层循环
如果想要实现结束,调出针对的多层循环嵌套中的某一层,需要使用带标签的break或者continue
带标签的break与continue:
1)需要某一层循环开始的位置设置标签 ->标签名:
2)在使用break或者continue,执行针对跳出|结束哪一个标签代表的循环–>break 标签名; | continue 标签名;

	
	public static void main(String[] args){
		one:
		for(int i=1;i<=5;i++){
			two:for(int j=100;j<=110;j++){
				System.out.print(i+"--->"+j+" ");
				if(j==105){
					break one;
				}
			}
			System.out.println();
		}

	}

四、

方法

在java中所有的功能使用方法来定义

方法:
定义某种功能的代码段

方法的作用:
简化代码的编写
提高代码的复用性

注意:
方法不调用不执行
方法不能嵌套,定义在类中方法外

定义:
修饰符 返回值类型|void 方法名(参数列表){
实现功能的代码段;
[return 返回值;]
}

修饰符: public static 访问权限修饰符
返回值类型|void:
这个方法执行完毕之后,调用方法的位置是否要等到一个结果,一个值,如果是就定义成有返回值类型的方法,如果不是就定义成没有返回值类型的方法

void : 没有返回值类型的方法
返回值类型 : 有返回值类型的方法

​ 返回的值的数据类型
​ 返回值类型可以为任意类型(基本数据类型|引用数据类型)

方法名: 标识符 方法的调用的根据方法名进行调用
遵循标识符的规则或者规范

(参数列表): 可以有参数,可以没有参数,可以存在多个参数
方法在定义过程中有没有不确定的数据,未知的数据,有就定义在参数列表上
参数: 数据类型 参数名,数据类型 参数名…

方法的参数->相当于局部(当前方法内部)变量的声明,什么时候赋值,在调用方法的时候,方法的参数才有值
{} : 实现工具具体的语句体代码段

return :
1.提前结束方法 (相当于循环中的break;)
2.在有返回值类型的方法中,必须存在,return 返回值,带出一个返回值

注意: 如果是有返回值类型的方法,方法体中必须配合return关键字一起使用,作用是带出返回值

定义方法的分析步骤:
1.方法的实现需求
2.方法的名字 : 见名知意
3.返回值|void: 这个方法执行完毕之后,调用方法的位置是否要等到一个结果,一个值
4.参数:方法在定义过程中有没有不确定的数据,未知的数据,有就定义在参数列表上

方法调用: 执行方法中的代码
方法名(实参);

有返回值类型的方法:

1.输出调用 System.out.println(方法名(实参)); --1)执行方法中的所有代码 2)打印方法的返回值

2.赋值调用 数据类型 变量名 = 方法名(实参); --1)执行方法中的所有代码 2)返回值赋值给一个变量

参数:
形式参数 : 形参
定义方法时候()中的参数
实际参数 : 实参
调用方法时候()中的参数

//程序的入口  逐行执行主方法中的代码
	public static void main(String[] args){
		//调用
		System.out.println(getSum(3,5));;
		
		int result = getSum(3,10);
		System.out.println(result);;
		
		clear();
		clear();
		clear();
		clear();
		clear();
		clear();
	}
	
	//需求: 计算2个整数的和 int
	//方法名: getSum
	//返回值类型|void : 有返回值类型的方法  int->return
	//参数: int a,int b
	public static int getSum(int a,int b){
		System.out.println("有返回值,有两个int参数的方法getSum");
		return a+b;
	}

	//需求: 打扫全校卫生功能
	public static void clear(){
		System.out.println("李银桥打扫整个学校卫生!!!!");
	}
参数

形参
实参
要求一一对应
个数
类型
顺序
注意: 方法的形参相当于局部变量的声明,局部:当前方法
方法的形参没有默认,形参的值由实参决定

return :
1) 提前结束方法 2)带出返回值,返回给方法的调用处

​ 在有返回值类型的方法中必须存在return关键,并且必须带出带出返回值
​ 没有返回值类型的方法可以存在return,不能带出返回值,只能结束方法

不可达语句:
1.return后面的语句
2.while–false中的代码
3.死循环后的代码 for(;😉{} while(true){}
4.break与continue的后面代码

方法签名:
方法名+参数列表 ->标识方法的唯一,相当于人的身份证号

public static void main(String[] args){
		//欺骗编译器
		boolean flag = false;
		while(flag){
			System.out.println("while--false的语句");
		}
		
		//死循环
		/*
		while(true){	
		}
		for(;;){}
		do{}while(true);
		*/

		for(int i=1;i<=10;i++){
			if(i==5){
				break;
				System.out.println("while--true的语句");
			}
		}
		
	}

	public static void test2(int i){  //int a =  1;
		if(i==5){
			return;   //提前结束方法
			//System.out.println("return后面的语句");
		}
		System.out.println("i!=5"); 
	}

	//有返回值类型的方法
	public static boolean test(int i){  //int a =  1;
		if(i==5){
			return false;   //提前结束方法
			//return false;   
			//System.out.println("return后面的语句");
		}
		System.out.println("i!=5");
		return true;   
	}
方法的兼容类型问题:(类型转换问题)

​ 1、参数类型

​ 形参的类型>=实参的类型

​ 2、返回值类型

​ 接收返回值的变量的类型>=方法的返回值类型>=return后面数据的类型

注意:

​ 以后的功能代码都定义在某个方法中,封装在方法中

public static void main(String[] args){
		long b = 1;
		test((int)b); 

		int b2 = test(1);
		System.out.println(test2());
		
	}

	public static int test(int i){  
		return 'a'; //char可以转换成为int类型
	}
	
	public static char test2(){  
		return 97;  //char类型的表现形式之一: 可以使用0~65535之间的整数来表示一个字符
	}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值