方法及其练习,数组及练习

时间:2022-09-03 11:58:27

方法定义格式

修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2,......){

    执行语句

    ………

    return 返回值;

}

对于上面的语法格式中具体说明如下:

  修饰符:方法的修饰符比较多,有对访问权限进行限定的,有静态修饰符static,还有最终修饰符final等

  返回值类型:用于限定方法返回值的数据类型void

  参数类型:用于限定调用方法时传入参数的数据类型

  参数名:是一个变量,用于接收调用方法时传入的数据

  return关键字:用于结束方法以及返回方法指定类型的值

   返回值:被return语句返回的值,该值会返回给调用者

方法的返回值必须为方法声明的返回值类型,如果方法中没有返回值,返回值类型要声明为void,此时,方法中return语句可以省略。

方法定义与返回值练习:

定义无返回值无参数方法,如打印3行,每行3个*号的矩形

public static void sanxing(){
        //打印三行
            for(int i = 0; i<3;i++){
                //每行打印三颗星
                for(int j = 0; j<3;j++){
                    System.out.print("*");
                }
                System.out.println();
            
            }
}

定义有返回值无参数方法,如键盘录入得到一个整数

main方法:

public static void main(String[] args) 
    {
        
        int z =zhengshu();//接收方法的返回值
        System.out.println(z);
        
    }

方法

public static int zhengshu(){
            Scanner sc = new Scanner(System.in);
            int a = sc.nextInt();
            return a;
    }

定义无返回值有参数方法,如打印指定M行,每行N个*号的矩形

public static void main(String[] args) 
{  
  nxing(2,3);//调用传参数,两行三列
}
public static void nxing(int m,int n){
    //定义形参m,n去接收实参参数值
for(int i = 0; i<m;i++){ for(int j = 0; j<n;j++){ System.out.print("*"); } System.out.println(); } }

 

 

数组

数组定义

在Java中,可以使用以下格式来定义一个数组。如下

数据类型[] 数组名 = new 数据类型[元素个数或数组长度];
//例如 int[] x = new int[100];

数组的静态初始化有两种方式,具体格式如下:

1、类型[] 数组名 = new 类型[]{元素,元素,……}; 2、类型[] 数组名 = {元素,元素,元素,……}; 

二维数组的定义:

int[][] arr = new int[3][4];//三个一维数组,每个一维数组有四个元素 int[][] arr = new int[3][];//三个一维数组,每个一维数组元素不确定 int[][] arr = {{1,2},{3,4,5,6},{7,8,9}};//三个不同的一维数组

 

数组遍历

一维数组遍历:

例子:

public class ArrayDemo04 { public static void main(String[] args) { int[] arr = { 1, 2, 3, 4, 5 }; // 定义数组 // 使用for循环遍历数组的元素 for (int i = 0; i < arr.length; i++) { System.out.println(arr[i]); // 通过索引访问元素  } } }

结果:

方法及其练习,数组及练习

二维数组遍历:

        int[][] arr2 = { {1,2},{3,4,5},{6,7,8,9,10} }; //遍历二维数组里的一维数组 for (int i=0; i<arr2.length; i++) { //遍历一维数组里面的元素 for (int j=0; j<arr2[i].length; j++) { System.out.println(arr2[i][j]); } } 

数组内存:

图解:

方法及其练习,数组及练习

方法,基本数据类型进栈(先进后出),数组,容器进堆,

进堆后分配数组地址,比如:0x001,好比小区单元

根据数组长度分配内存,这里分三块,

每块就是数组元素,都有下标,好比门牌号

然后给每个数组元素赋初值,0

把数组地址返回给栈中数组a,

所以打印输出数组a,结果为其地址

语句执行完后,出栈,变量数据若无返回,则会随着出栈销毁,

数组中数据类型初始化默认值:

byte、short、int、long

0

float、double

0.0

char

一个空字符(空格),即’\u0000’

boolean

false

引用数据类型

null,表示变量不引用任何对象

 

 

数组练习

求数组中的最大值

Java代码:

    int[] arr = {1,8,4,3,2,5}; int max =arr[0]; for(int i=0;i<arr.length;i++){ if(arr[i]>max){ max = arr[i]; } } System.out.println(max);

结果:
方法及其练习,数组及练习

 

 公司销售总和练习

例如要统计一个公司三个销售小组中每个小组的总销售额以及整个公司的销售额。如下所示

   第一小组销售额为{11, 12}万元

   第二小组销售额为{21, 22, 23}万元

   第三小组销售额为{31, 32, 33, 34}万元。

Java代码:

    //公司销售额 int[][] ar =new int[3][]; ar[0] =new int[]{11,12}; ar[1] =new int[]{21,22,23}; ar[2] = new int[]{31,32,33,34}; int sum =0;//总销售额 int j=0;// int groupsum = 0;//小组销售总额 //遍历二维数组 for (int i=0;i<ar.length ;i++ ) { for( j=0; j<ar[i].length;j++) { groupsum += ar[i][j];//累加每组的销售额为每组总销售额 //System.out.print(ar[i][j]+" ");  } sum += groupsum;//总销售额等于每组销售额加起来 System.out.println("第"+(i+1)+"小组销售金额:"+groupsum+ " 万元"); groupsum = 0;//一组加完后,清零,再循环算下一组  } System.out.println("总销售额为: " + sum + " 万元");

结果:
方法及其练习,数组及练习