• Java初认识--函数和数组


    一、函数

    1、函数的定义

    函数就是定义在类中的具有特定功能的一段独立小程序,函数也称为方法。

    java中最小的功能单元就是函数。

    2、函数的格式

    修饰符 返回值类型 函数名(参数类型 形式参数1,参数类型 形式参2)

    {
    执行语句;

    return返回值;
    }

    返回值类型:函数运行后的结果的数据类型。

    参数类型:是形式参数的数据类型。

    形式参数:是一个变量,用于存储调用函数时传递给函数的实际参数。

    实际参数:传递给形式参数的具体数值。

    return:用于结束函数。

    返回值:该值会返回给调用者。

    3、函数的应用

    编写代码就是不断的实现功能,java中最小的功能单元就是函数,所以我们写代码的时候,只要把功能定义在一个独立的函数中,不要把代码都放在主函数里面,主函数的功能就是调用函数,这样就提高了代码的复用。

    如何定义一个函数呢?

    1,:既然函数时一个独立的功能,那么该功能的运算结果是什么先明确;

    2:明确在定义该功能的过程中是否需要未知的内容参与运算;

    范例1 需求:计算任意一个 整数乘以3+5 的结果。

    1:明确功能的结果是一个整数*3+5的结果;返回值类型为int型。

    2:在实现该功能的过程中没有未知内容参与运算;明确函数的参数列表(参数类型和参数的个数)。

    public class FunctionDemo {
    	public static void main(String[] args){
    	int num = 3;
    	System.out.println(num*3+5);//输出3*3+5的结果
    	num = 8;
    	System.out.println(num*3+5);//输出8*3+5的结果
    	}
    }
    

    // 发现以上的运算因为获取不同数据的运算结果,代码出现了重复。

    // 为了提高代码的复用性,对代码进行了抽取,将这个部分定义成一个独立的功能,方便日后使用。

    // Java中对功能的定义是通过函数的形式来实现的。

    // 需要定义功能,完成一个整数的*3+5的运算,并打印结果。

    1,先明确函数定义的格式。

    整数*3+5的返回值是个整数,返回值类型为int型。

    int getResult (int num)
    {
    return num*3+5;
    }//定义这个功能,完成任意一个整数*3+5,并把这个结果返回。这个函数时独立存在的,等待主函数的调用。
    

    2、下面我们进行主函数对这个功能的调用。

    public class FunctionDemo {
    	public static void main(String[] args){
    		int x = getResult(2);//我们调用getResult这个功能函数,传入数字2进行2*3+5的运算。
    		int x = getResult(6);
    		System.out.println("x="+x);		
    	}	
    
    	public static int getResult(int num){当然我们也可以直接在这个功能中输出结果,不用返回给主函数,这时返回值类型用void(空)这个关键字来表示;当返回值类型是void时,函数中的return语句可以省略不写。	
    		return num*3+5;
    	}
    }
    

    范例2 比较两个数的大小

    public class FunctionDemo {
    	public static void main(String[] args){
    		boolean C = getMax(6,3);//主函数调用getMax函数。
    		System.out.println(C);
    	}	
    
    	public static boolean getMax(int a,int b ){
    	return a>b;这个函数是最简化的,可以写成三元运算符return a>b?true:false;
    	}
    }
    

    范例3:打印矩形

    public class FunctionDemo {
    	public static void main(String[] args){
    		 Loop(6,3);//我们只需要在这里调用Loop函数,输入我们想要的行数和列数,就可以了,不用再重复写代码。
    		}	
    
    public static void Loop(int row,int col ){//因为没有结果,直接打印了,所有返回值类型为void;有两个未知的内容,行数和列数不确定。
    	for(int x=0;x<row;x++){
    		for(int y=0;y<col;y++){
    			System.out.print("*");
    		}
    		System.out.println();
    	}
    	}
    }
    

    二、数组

    1、数组的概念

    数据类型有两种,一种是基本数据类型,一种是引用数据类型,数组就是引用数据类型中的其中一种。

    同一种类型数据的集合,其实数组就是一个容器。

    数组最大的优点就是:可以自动给数组中的元素从0开始编号,方便操作这些元素。我们可以不知道这些元素的名称,我需要知道她的编号就可以了。

    2、数组的格式

    格式1、元素类型[] 数组名 = new 元素类型[元素个数或数组长度]

    关键字new:用来在内存中产生一个容器实体,数据存储,必须得有一个地方,用new操作符来完成。

    需求:定义一个可以存储3个整数的容器。
    
    int[] x = new int[3]
    
    //用new操作符在内存中定义了一个真实存在的数组,可以存储3个整数。
    

    // 任何一个变量都应该有自己的数据类型,但是这个x并不是int类型的,而是数组类型。x前面的int代表的是元素类型是数组的。

    // 局部变量a在栈内存中,new出来的实体在堆内存中,堆内存中全是实体,包括数组和对象(数组也是对象)。x引用这个new出来的数组。

    格式2:int[] x = new int[]{2,6,1}

    创建一个数组实体,并给这个数组中的每个元素赋值,用于数组元素明确的情况,不用指定数组的长度,不容易出错。

    需求:打印数组中某一个角标的值

    格式1:
    public class FunctionDemo {
    	public static void main(String[] args){
    		int[] x = new int[3];
    		x[0]=1;//如果不指定具体数值的话,默认都为0;
    		x[1]=3;
    		x[2]=9;
    		System.out.println(x[1]);
    }//打印结果就是3。
    }
    
    格式2:
    public class FunctionDemo {
    	public static void main(String[] args){
    		int[] x = new int[1,3,9];
    		System.out.println(x[1]);
    }
    }
    

    3、数组的应用

    范例1:需求:遍历数组中所有角标的值。

    public class FunctionDemo {
    	public static void main(String[] args){
    		int[] arr = new int[]{1,9,6};
    		for(int x=0;x<3;x++)
    		System.out.println("arr["+x+"]"+"="+arr[x]);
    }
    }
    

    // 数组中有一个属性可以直接获取到数组的元素个数,即:length,只需要通过 (数组名称.length)的形式就可以得到数组的长度。

    范例2:打印数组长度和数组中所有元素的和。

    public class FunctionDemo {
    	public static void main(String[] args){
    		int[] arr = new int[]{1,9,6};
    		int sum = 0;
    		System.out.println("length="+arr.length);//打印数组长度
    		for(int x=0;x<arr.length;x++){
    			sum+=arr[x];//打印数组中所有元素的和
    			System.out.println("arr["+x+"]"+"="+arr[x]);
    		}
    		System.out.println("sum="+sum);
    		
    }
    }//打印的结果为:length=3
    				arr[0]=1
    				arr[1]=9
    				arr[2]=6
    				sum=16
    

    范例3:需求:打印数组中的元素,中间用,隔开,并打印元素的和。构造一个独立的函数,使用主函数调用的方法。

    public class FunctionDemo {
    	public static void main(String[] args){
    		int[] arr = new int[]{1,9,6};
    			printArry(arr);//printArray函数中已经实现了这些功能,主函数只需要传入一个数组,进行调用即可。
    }
    
    	public static void printArry(int[] arr){
    	int sum = 0;
    	for(int x=0;x<arr.length;x++){
    		if(x!=arr.length-1)//用来去掉最后一个元素后面的,的
    		System.out.print(arr[x]+",");
    		else{System.out.print(arr[x]);}
    		sum+=arr[x];
    	}
    	System.out.println();
    	System.out.println("sum="+sum);
    	}
    }
    

    范例4:冒泡排序

    public class FunctionDemo {
    	public static void main(String[] args){
    		int[] arr = new int[]{1,9,6};
    		//排序前:
    		printArry(arr);
    		//排序:
    		bubbleSort(arr);
    		//排序后:
    		printArry(arr);
    }
    
    	public static void printArry(int[] arr){
    		for(int x=0;x<arr.length;x++){
    		if(x!=arr.length-1)
    		System.out.print(arr[x]+",");
    		else{System.out.print(arr[x]);}
    		}
    		System.out.println();
    }
    	
    	public static void bubbleSort(int[] arr){
    	
    		for(int x=0;x<arr.length-1;x++){
    		for(int y = 0;y<arr.length-x-1;y++){//-x的目的是让每一次比较的元素减少;-1的目的是:避免角标越界。
    			if(arr[y]>arr[y+1]){
    				int temp = arr[y];
    				arr[y] = arr[y+1];
    				arr[y+1] = temp;
    			}
    		}
    		}
    	}
    }
  • 相关阅读:
    AjaxPro对象参数传递
    SQLServer “无法对数据库'XX' 执行删除,因为它正用于复制”的解决方法
    sql server 查询某个表被哪些存储过程调用
    存储过程简单实例
    清理sqlserver 2012 日志文件
    从客户端(XXX)中检测到有潜在危险的Request.Form 值
    sqlserver无法在数据库上放置锁
    C#趋势图(highcharts插件)
    TFS 报错解决方案:tf400324
    checkbox勾选事件,JQ设置css,下拉框JQ选中
  • 原文地址:https://www.cnblogs.com/shijiayi/p/4495118.html
Copyright © 2020-2023  润新知