Java学习第六天

一: 流程控制
 (1)顺序结构: 
 (2)选择结构: if 、 if else 、 if else if else if else   switch case。

 (3)循环结构:for  while  do...while 

练习: 打印

*

**

***

****

*****

	       for(int i=1;i<=5;i++){//控制行数
			 for(int j=1;j<=i;j++){
				System.out.print("*");
			 }
			 System.out.println();
		   }

1

12

123

1234

12345

	       for(int i=1;i<=5;i++) {
	    	   	for(int j=1;j<=i;j++) {
	    	   		System.out.print(j);
	    	   	}
	    	   	System.out.println();
	       }


***** 1 5

****  2 4

***   3 3

**    4 2

*

//第一种
			for(int i=1;i<=5;i++){//控制行数:
				for(int j=1; j<=6-i;j++){//控制列数:
					System.out.print("*");
				}
				System.out.println();
			}
//第二种
	        for(int i=1;i<=5;i++){
				for(int j=i;j<=5;j++){
					System.out.print("*");
				}
				System.out.println("");
			}

分析: 空格和行的关系  星号和行的关系:

____*      1    4      1

___**      2    3      2

__***      3    2      3

_****      4    1      4

*****

结论: 打印的图形: 尖朝上,通常改变内层循环的条件。

 尖朝下,通过改变内层循环的变量的初始值,循环条件不变

	      for(int i=1;i<=5;i++){//控制循环的行“:五行
		     for(int x=i+1;x<=5; x++ ){//控制空格:
			     System.out.print(" ");
			 }
			 for(int y=1;y<=i;y++){
				System.out.print("*");
			 }
			 System.out.println();
		  }


 *****

  ****

   ***

    **

     *

	      for(int i=1;i<=5;i++){//控制循环的行“:五行
	    	  	for(int y=1;y<=i;y++){
					System.out.print(" ");
		     }
		     for(int x=i;x<=5; x++ ){//控制空格:
			     System.out.print("*");
			 }
			 
			 System.out.println();
		  }


   *        1   3  1  3

  ***       2   2  3  2

 *****      3   1  5  1

*******     

 *****      

  ***       

   *        

	      for(int i=1;i<=7;i++) {
	    	  	if(i<=4) {
	    	  		for(int j=1;j<=4-i;j++)
	    	  			System.out.print(" ");
	    	  		for(int j=1;j<=i*2-1;j++)
	    	  			System.out.print("*");
	    	  		for(int j=1;j<=4-i;j++)
	    	  			System.out.print(" ");
	    	  	}else {
	    	  		for(int j=1;j<=i-4;j++)
	    	  			System.out.print(" ");
	    	  		for(int j=1;j<=(7-i)*2+1;j++)
	    	  			System.out.print("*");
	    	  		for(int j=1;j<=i-4;j++)
	    	  			System.out.print(" ");
	    	  	}
	    	  	System.out.println();
	      }

 

    *        

   * *        

  *   *

*       *

 *   *

  * *

   *


	      for(int i=1;i<=7;i++) {
	    	  	if(i<=4) {
	    	  		for(int j=1;j<=4-i;j++)
	    	  			System.out.print(" ");
	    	  		if(i!=1) 
	    	  			System.out.print("*");
	    	  		for(int j=1;j<=i*2-3;j++)
	    	  			System.out.print(" ");
	    	  		System.out.print("*");
	    	  		for(int j=1;j<=4-i;j++)
	    	  			System.out.print(" ");
	    	  	}else {
	    	  		for(int j=1;j<=i-4;j++)
	    	  			System.out.print(" ");
	    	  		if(i!=7)
	    	  			System.out.print("*");
	    	  		for(int j=1;j<=(7-i)*2-1;j++)
	    	  			System.out.print(" ");
	    	  		System.out.print("*");
	    	  		for(int j=1;j<=i-4;j++)
	    	  			System.out.print(" ");
	    	  	}
	    	  	System.out.println();
	      }
	}

二: 方法:
 需求: num* 5+1
 1:定义: 完成某一个功能的代码段的集合。给一段代码命名。
    然后通过方法的名称来访问该方法。 
 2:方法的定义语法:
  public  static  void 方法名称([参数列表]){  
//定义的方法体:
  }
  访问权限修饰符 [修饰符] 返回值 方法名称([参数列表]){  
...方法体。
  }
  解释: 
  public: 访问权限修饰符。 公共的,共有的。 
  static: 表示静态的。 静态的方法通过类名直接调用。 Math.abs();
  void :代表没有返回值。
  方法的名称: 自定义,遵循标识符的规则和规范。 从第二个单词的首字母开始,大写。
  () 参数列表: 参数列表,需要的时候传递,不需要的时候,不传递。
       参数在定义的时候不需要给出具体的值,而是给出具体的类型。参数,是一个形式上的参数,
       所以称之为形式参数,简称形参。
     定义功能时,如果需要多个参数,那么多个参数之间使用逗号间隔。     
  方法体: 自定义、
  如果方法需要定义成具有返回值的:那么需要在方法当中将计算的结果,通过return关键字返回。
  方法的返回值类型,应该定义成和结果相同或者是相兼容的类型。 
3:方法的调用:
  调用方式:
  (1)类名.方法名称("参数");
   a:在主方法当中可以通过类名.方法名的方法调用自定义方法。 
   如果是调用本类的静态方法,类名可以省略。
   b:如果自定的方法当中定义了形式参数,那么在调用该方法的时候,需要传递
   一个实际的参数,来替代形式参数。 传递的参数是一个实际的值。称之为实参。
   c: 调用方法传递实参的时候,传递的实参必须要跟形参的类型相同或者是相兼容。

 需求: 定义一个功能: 完成两个数的和

	public static void add(int a,int b) {
		int sum=a+b;
		System.out.println("sum="+sum);
	}

        定义一个功能: 完成求两个double类型的数的和。

	public static void add(double a,double b) {
		double sum=a+b;
		System.out.println("sum="+sum);
	} 

定义一个功能: 打印九九乘法表:

	public static void Print99() {
		int i,j;
		for(i=1;i<=9;i++){
			System.out.println();
		    for(j=1;j<=i;j++){
		    		System.out.print(j+"X"+i+"="+i*j+"    ");
		    } 
		}
	}

定义一个功能:求三个数的最小值。

	public static int getMin(int a,int b,int c) {
		int min=a;
		if(min>b) 
			min=b;
		if(min>c)
			min=c;	
		return min;
			
	}

定义一个功能: 求一个数的绝对值。

	public static int getAbs(int a) {
		a=a>0? a:-a;
		return a;
	}

定义一个功能: 打印菱形 (传递一个int的数,打印响应的行数 4)

	public static void printRhombus(int a) {
		// 1 3 5 7 9 11
		if(a%2==0) {
			a=a+1;
		}
		for(int i=1;i<=a;i++) {
    	  	if(i<=a/2+1) {
    	  		for(int j=1;j<=a/2+1-i;j++)
    	  			System.out.print(" ");
    	  		for(int j=1;j<=i*2-1;j++)
    	  			System.out.print("*");
    	  		for(int j=1;j<=a/2+1-i;j++)
    	  			System.out.print(" ");
    	  	}else {
    	  		for(int j=1;j<=i-a/2-1;j++)
    	  			System.out.print(" ");
    	  		for(int j=1;j<=(a-i)*2+1;j++)
    	  			System.out.print("*");
    	  		for(int j=1;j<=i-a/2-1;j++)
    	  			System.out.print(" ");
    	  	}
    	  	System.out.println();
      }
	}

定义功能:求三角形的周长和面积。

	//求三角形的周长
	public static double getLength(double a,double b,double c) {
		double l=a+b+c;
		return l;
	}
	//求三角形的面积
	public static void printSqur(double a,double b,double c) {
		if(a>0&&b>0&&c>0) {
			if(a+b>c&&a+c>b&&b+c>a) {
				double p=(a+b+c)/2.0;
				double s=Math.sqrt(p*(p-a)*(p-c)*(p-b));
				System.out.println("三角形的面积为:"+s);
			}
			else
				System.out.println("不能组成一个三角形!");
		}
		else
			System.out.println("请输入正数!");
	}
 4:方法的优点:
  a: 可以将代码进行封装,就可以实现代码的复用。

  b: 使代码更加具有模块化。

三:return 关键字:

   (1)作用一:用在具有返回值的方法当中,将方法运算的结果,返回。返回结果的类型必须要跟定义的类型相同或者是相兼容。
          作用二:表示该方法结束。

   (2)用在无返回值的方法当中。 表示方法运行到此处结束。  如果不手动添加,在方法的末尾,
    系统会自动给添加。 通常不需要手动添加。
三: 方法的重载(面试):
 1:定义:方法的重载: 在一个类当中,允许定义同名的方法,但是方法的参数列表不同。 列表不同
   表现在参数的个数和参数的类型不同。 这样的方法称之为重载的方法。
   要点: 方法名称相同。
          参数不同。 个数和类型不同。
          和返回值没有关系。
 2: 重载方法的调用:
    虚拟机会根据传递实参的个数和类型,去匹配最合适最相近的方法调用。
 3:判断下列哪些方法构成方法的重载:
    void show(int a,char b, double c);
    a:void show( int b, char a ,double c);// 不构成, 完全一样。
    b:int show(int a,char b, double c) //  不构成。与返回值没有关系。
    c:void show( char a, int b. double c); // 构成:参数的类型不同。
    d:boolean show(int b,char c);// 构成。参数的列表的个数不同。f
    e:void show(double d);//构成
    f: void show();//构成
    e:double show(int a,char b, double c);// 不构成。
 4:什么情况下定义方法的重载?
    当方法完成的功能相似或者是相近时, 但是参与运算的参数的个位或者是类型不同时,可以定义
    方法的重载。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值