【学习记录】Java语言基础(2)

Day03 (其他人看不存在任何价值!)

1、break:在循环中,默认结束离他最近的循环;

      在switch语句里面,用来结束分支。

		outFor:for (int a = 1;a <= 9 ;a++ ){
			innerFor:for (int b = 1; b <= a ; b++){
				System.out.print(a + "X" + b +"="+ a*b +"    ");
				if (b == 5){
					break outFor;
				}
			}
			System.out.println();
		}

2、return 也会结束循环,只不过区别在于他结束的是这个main方法。

3、continue 直接结束;另外,如果continue下一行如果有任何语句,第一是不会执行,另外,在编译的时候是会报错的。

class Operator03 {
	public static void main(String[] args) {

		//计算1-100所有的基数求和;
		int count = 0;

		for (int i = 1; i<=100 ;i++ ){
			if (i%2==0){
				continue;
				count = count + i; 
				/*
					---------- javac ----------
				Operator03.java:21: 错误: 无法访问的语句
				count = count + i; 
				^
				1 个错误

				输出完成 (耗时 1 秒) - 正常终止
				*/

			}
			System.out.print(i+"    ");
				count = count + i;
		}
		System.out.println(count);

	}
}

4、方法:

class Operator03 {
	// main方法 是程序的入口,程序是需要从main开始。
	public static void main(String[] args) {
		int a = 10;
		int b = 20;
		System.out.println(a+b);
		sumInt(19,19);
		// 有返回值的方法的调用;
		System.out.println(sumIntor(13,15));

	}
	// 在main方法中 进行定义。
	//计算数据不同,这样就会导致代码的冗余性。
	public static void sumInt(int a , int b){	
		int sum = a + b;
		System.out.println(sum);
	}
	// 有返回值类型的方法定义:
	public static int sumIntor(int a , int b){
		int sum = a + b;
		return sum;
	}
}


5、方法的调用与执行顺序

class Operator03 {
	// main方法 是程序的入口,程序是需要从main开始。
	public static void main(String[] args) {
		// 如果方法跨类进行调用,需要采用类名.的方式
		// 如果在同一个类中,直接下方法()即可。
		Method02.m1();
		Operator03.m1();
	}
	public static void m1(){
		System.out.println("m1");
	}
}
class Method02{
	public static void m1(){
		System.out.println("M2");
	}
}


方法的执行顺序是:从main方法中自上而下执行的。

注意不要出现方法的互相调用。会导致一个错误,stackOverFlow错误。方法大调用要都用到 main'方法中。

6、return语句。

return 是结束方法的额,就后面的语句不会被执行。

	public static boolean m1(int i){
		if (i == 0){
			return true;
		}
		return false;

		// 或者
		if (i == 0){
			return true;
		}else{
			return false;
		}
	}

7、方法重载。

class Operator03 {
	// main方法 是程序的入口,程序是需要从main开始。
	public static void main(String[] args) {
		System.out.println(sumInt(10,30));
		System.out.println(sumLong(10000L,3099L));
		System.out.println(sumFloat(10.0F,30.0F));
		System.out.println(sumDouble(10.245,30.543));
		// 第二种方式“
		System.out.println(sum(10,30));
		System.out.println(sum(10000L,3099L));
		System.out.println(sum(10.0F,30.0F));
		System.out.println(sum(10.245,30.543));
	}

	public static int sumInt(int a, int b){
		return a + b;
	}
	public static long sumLong(long a, long b){
		return a + b;
	}
	public static float sumFloat(float a, float b){
		return a + b;
	}
	public static double sumDouble(double a, double b){
		return a + b;
	}
	//第二种方式
	public static int sum(int a, int b){
		return a + b;
	}
	public static long sum(long a, long b){
		return a + b;
	}
	public static float sum(float a, float b){
		return a + b;
	}
	public static double sum(double a, double b){
		return a + b;
	}

}

程序员只需要记住一个方法的名字就可以了。

  • 需要在同一个类中,
  • 方法名相同;
  • 参数类表不同(参数类型,个数以及顺序。)
  • class Operator03 {
    	// main方法 是程序的入口,程序是需要从main开始。
    	public static void main(String[] args) {
    		System.out.println(sumInt(10,30));
    		System.out.println(sumLong(10000L,3099L));
    		System.out.println(sumFloat(10.0F,30.0F));
    		System.out.println(sumDouble(10.245,30.543));
    		// 第二种方式“
    		System.out.println(sum(10,30));
    		System.out.println(sum(10000L,3099L));
    		System.out.println(sum(10.0F,30.0F));
    		System.out.println(sum(10.245,30.543));
    	}
    
    	public static int sumInt(int a, int b){
    		return a + b;
    	}
    	public static long sumLong(long a, long b){
    		return a + b;
    	}
    	public static float sumFloat(float a, float b){
    		return a + b;
    	}
    	public static double sumDouble(double a, double b){
    		return a + b;
    	}
    	//第二种方式
    	public static int sum(int a, int b){
    		return a + b;
    	}
    	public static long sum(long a, long b){
    		return a + b;
    	}
    	public static float sum(float a, float b){
    		return a + b;
    	}
    	public static double sum(double a, double b){
    		return a + b;
    	}
    
    }
    
    class MethodOverload02{
    	public static void main(String[] args){
    		System.out.println("HelloWorld");
    
    	}
    	//参数个数不同
    	public static void m1(){}
    	public static void m1(int i){}
    
    	//参数类型不同
    	//参数的顺序不同,M3方法构成重载,但是开发中,不这样使用;
    	public static void m3(int i,long b){}
    	public static void m3( long b,int i){}
    
    	//重载与返回值类型没有关系;
    	//public static void m6(){}
    	//public static int m6(){}
    	/*
    	---------- javac ----------
    		Operator03.java:59: 错误: 已在类 MethodOverload02中定义了方法 m6()
    		public static int m6(){}
    	                 ^
    		1 个错误
    		输出完成 (耗时 1 秒) - 正常终止
    	*/
    
    	//重载与修饰符列表没有关系;
    	//public static void m6(){}
    	//public  int m6(){}
    	/*
    ---------- javac ----------
    		Operator03.java:71: 错误: 已在类 MethodOverload02中定义了方法 m6()
    			public  int m6(){}
    						^
    		1 个错误
    2019/3/31
    		输出完成 (耗时 1 秒) - 正常终止
    	*/
    
    }
    
    
    

    8、栈——数据结构

先进后出——水桶;空间大小限制性——StackflowError错误。

9、递归

class Operator03{
	public static void main(String[] args){
		int n = 10;
		System.out.println(sum(n));
	}
	public static int sum(int n ){
		int result = 0;
		for (int i = 1; i<=n ;i++ ){
			result+=i;
		}
		return result;
	}
}
// 使用递归的方式计算1-n的和;
// 递归方式:是一种自己调用自己,要有一个结束条件,否则会出现StackOverflowError;

class Recursion02{

	public static void main(String[] args){

		int result = sum(5);
		System.out.println("HelloWorld!");
	}

	/*
	n=5;5+sum(4)
	n=4;	4+sum(3)
	n=3;		3+sum(2)
	n=2;			2+sum(1)
	n=1;				1

	*/
	public static int sum(int n){
		if (n==1){
			return 1;
		}else{
			return n + sum(n-1);
		}

	}

}

弹栈!!!!!

10、方法执行图解:

弹栈   压栈

猜你喜欢

转载自blog.csdn.net/m0_38052500/article/details/88925290