Day_04 方法、内存划分、递归

日期:9.28

1.while循环和do...while循环

1.1while循环

        while循环是真假循环,当条件为真时进行循环

public class _01_While {
	public static void main(String[] args) {
		for (int i = 0; i < 10; i++) {
			System.out.println(i);
		}
		int i = 0;
		while (i < 10) {
			System.out.println(i);
			i++;
		}
	}
}

1.2 do...while循环

        do...while循环与for、while循环的区别是:do...while循环一定会执行一次,是先执行后判断,而其他两种循环是先判断后执行,可以执行0次。

public class _02_DoWhile {
	public static void main(String[] args) {
		// 条件不符合,不执行
		for (int i = 0; i < -1; i++) {
			System.out.println(i);
		}
		int a = 1;
		int b = 2;
		while (a > b) {
			System.out.println(22);
		}

		// 先执行,再判断
		do {
			System.out.println(3);
		} while (a > b);
		System.out.println("=======");
	}
}

1.3 break与break outFor

        break用来跳出switch循环,break outFor可以指定跳出哪一个循环

public class _03_Break {
	public static void main(String[] args) {
		// 需求 : 查询7~10000内 第一个完全数
		for (int i = 7; i <= 10000; i++) {
			// 记录和
			int sum = 0;
			for (int j = 1; j < i; j++) {
				if (i % j == 0) {
					sum += j;
				}
			}
			if (sum == i) {
				System.out.println(i);
				// 找到之后 终止循环
				break;
			}
			// 重新赋值
			sum = 0;
		}
	}
}
public class _04_BreakOutfor {

	public static void main(String[] args) {
		outFor: for (int i = 0; i < 10; i++) {
			for (int j = 0; j < 10; j++) {
				if (j == 3) {				
					// 对外层循环设置名字,就会直接终止外层循环
					break outFor;
				}
				System.out.print(j + "  ");
			}
			System.out.println();
		}
	}
}

1.4 continue

        continue用来跳过本次循环,但下次仍会执行

public class _05_Continue {
	public static void main(String[] args) {
		for (int i = 0; i < 10; i++) {
			if (i == 3) {
				// break;
				// 跳过当前次,直接i++
				continue;
			}
			// 0,1,2,4,5,6,7,8,9   没有3
			System.out.println(i);
		}
		

		// 需求 : 查询1~10000内 除了6之外,第一个完全数
		for (int i = 1; i <= 10000; i++) {
			// 记录和
			int sum = 0;
			for (int j = 1; j < i; j++) {
				if (i % j == 0) {
					sum += j;
				}
			}
			if (sum == i) {
				if (i == 6) {
					continue;
				}
				System.out.println(i);
				// 找到之后 终止循环
				break;
			}
			// 重新赋值
			sum = 0;
		}
	
	}
}

2.方法

2.1方法的定义

        定义:很多语句的集合,可以是一个循环,一个判断,一个执行某种功能的模块,只要调用这个方法,就相当于使用这些代码

        目的:1.代码复用  2.减少重复代码  3.有利于后期维护  4.提升开发效率

2.2 方法的声明

2.2.1方法声明 

 修饰符列表  返回值类型 方法名(参数列表){ 方法体 }
 修饰符列表 : 可以有可以没有,可以有多个
 权限控制 : public , private , protected,  不写  四选一
 其他修饰符 : static 修饰是否静态(加上说明是静态方法,不加说明是成员方法) ,
                               synchronized 线程同步(加上说明同步,不加说明不同步)
                              abstract (表示抽象)  final(最终) 二选一

2.2.2返回值类型

        11种数据类型和 void  任意一种,作用是 把方法执行完功能之后,需要的反馈,返回给调用处

        如果不需要反馈,就写void , void说明没有返回值类型,方法需要返回的数据 是什么类型,返回值就写什么类型即可

2.2.3 方法名

        命名规则符合命名规则即可

2.2.4参数列表

        多个参数 使用逗号隔开,  (int a , int b , double c , ....)
        完成某个功能的时候,需要用到的某个未知数据,谁要使用这个功能,谁就知道数据
        形参 : 在方法声明的时候,规定应该传入什么类型的数据,叫形参 
        实参 : 调用这个方法的时候,实际传入的数据,叫实参

2.2.5 方法体

        实现功能的地方

2.2.6 return

        1 终止方法运行,碰到return 方法结束,所以return之后 不能写代码 
         2 返回数据 , 需要有返回值才行
            有返回值的方法中,return必须写 , 语法 : return 值;  这个值 比较和返回值类型对应
            如果方法没有返回值,return 可以写,也可以不写,语法 : return ; 
            return后不能写任何数据,此时只有终止方法运行的作用,不能返回数据

2.3方法分类

        静态方法:使用static修饰的方法

        成员方法:没有使用static修饰的方法

        构造方法:暂时略

2.4 方法调用

        静态方法:类名.方法名(参数); 在当前类中   调用当前类中的方法,类名可以省略

        成员方法 : 对象.方法名(参数);

        方法不调用不执行,调用才执行,并把结果返回到调用处

public class Method_01 {
	public static void main(String[] args) {
		Method_01.m1();
		m1();
	}
	
	// 没有返回值
	public static void m1(){
		for (int j = 0; j < 10; j++) {
			if (j == 5) {
				return;
			}
		}
	}

	// 有返回值
	public static int m2(){
		return 10;
	}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值