package com.itheima.javaday5;
/*
今天讲的是函数和数组。
重点还是在于理解性的建议和敲代码去多练习。
一些格式和操作我尽量在案例的代码旁边标注一些,希望有助于大家的理解。
1.函数
1.1,格式:
修饰符 返回值类型 函数名(形参类型 形式参数1,形参类型 形式参数2...)
{
函数体;
reutrn 返回值;
}
1.2,函数的调用
A:有明确返回值
a:单独调用 一般用于没有返回值的函数(即返回值类型为void)。
b:输出调用 一般建议先使用赋值调用,再使用这个输出调用。
c:赋值调用 推荐方式。
B:void类型
单独调用
1.3,函数重载
1.4,***案例***
1.4.1,有明确返回值的例子:
A:求两个数据的和
B:求两个数据的最大值
C:比较两个数是否相等
1.4.2,void类型例子:
A:nn乘法表
B:根据给定的行和列输出一个*组成的长方形
2:数组(掌握)
2.1,格式:
A:int[] arr = new int[3];
B:int arr[] = new int[3];
C:int[] arr = new int[]{1,2,3};
D:int[] arr = {1,2,3};
2.2,***操作***:
数组的长度。
A:数组的遍历
B:数组获取最值
C:数组的查找
2.3,数组操作的常见问题:
A:数组越界异常。你访问了不存在的索引。
ArrayIndexOutOfBoundsException
B:空指针异常。一个实例(对象)已经不存在了,你还去访问它的内容。
NullPointerException
3.二维数组:
3.1,格式:
A:int[][] arr = new int[3][2];
B:int[][] arr = new int[3][];
C:int[][] arr = {{1,2,3},{4,5},{6,7,8,9}};
3.2,遍历:
3.3,**应用**:遍历求和。
*/
class FunctionAndArray
{
public static void main(String[] args){
System.out.println("首先练习的案例是函数的:");
System.out.println();
System.out.println("两个数的和为:"+sum(10,9));//输出调用
System.out.println("三个数的和为:"+sum(10,9,8));//函数的重载
int max = getMax(10,1);//赋值调用
System.out.println("两个数中的最大值为:"+max);
System.out.println("判断两个数想不想等,相等的返回true,不相等的返回false:"+compare(10,9));//测试不相等的情况
System.out.println("判断两个数想不想等,相等的返回true,不相等的返回false:"+compare(1,1));//测试相等的情况,两种情况都测过,才能初步说明函数的正确性
table99(9);//直接调用
System.out.println("----------------------------------------------");
System.out.println();
System.out.println("接下来的是数组:");
System.out.println();
//数组的创建
int[] arr = new int[5];//最标准的方式,也是常用的
int[] arr2 = {10,3,56,78,2,8,4};//常用的方式
int[] arr3 = new int[]{2,8,4,10,3,56,78};//上一种方式是这种方式的简写格式,比较少用,也不建议用
int arr4[] = new int[5];//这种方式和第一种比较像,只是这种方式更符合c++程序员的习惯,但不建议使用
System.out.println("数组arr的长度为:"+arr.length);//数组的长度
System.out.println("接下来输出的是数组arr2:");
print(arr2);//A:数组的遍历
System.out.println("数组arr3中的最值为:"+getMaxArray(arr3));//B:数组获取最值
System.out.println("返回数组中值为 56 的索引值:"+getIndex(arr3,56));//C:数组的查找
//System.out.println(arr4[5]);//数组越界 ArrayIndexOutOfBoundsException: 5
arr4 = null;
//System.out.println(arr4[0]);//空指针异常 lang.NullPointerException
System.out.println("----------------------------------------------");
System.out.println();
System.out.println("接下来的是二维数组,现在可以只作为了解:");
System.out.println();
int[][] brr = new int[3][2];//最标准的方式,常用
int[][] brr2 = new int[3][];//一般在不规则的二维数组定义时需要用到
int[][] brr3 = {{1,2,3},{4,5},{6,7,8,9}};//常用,静态初始化的方式
System.out.println("接下来输出的是二维数组brr3:");
printTD(brr3);//二维数组的遍历
int sum = sumTD(brr3);//二维数组的遍历求和
System.out.println("计算二维数组brr3中所有数的和:"+sum);
}
/*
1.函数
A:求两个数据的和。
这是第一题,我就先理理思路,之后的我就不理思路了。
思路:
首先,函数有结果,结果为两个数的和。所以,就有了返回值类型。
第二个,函数需要知道两个数,所以需要两个参数。
*/
public static int sum(int a,int b){
return a+b;
}
/*
1.函数
函数的重载,一般是在定义功能相同的函数时,但是参数列表不同
*/
public static int sum(int a,int b,int c){
return a+b+c;
}
/*
1.函数
B:求两个数据的最大值
*/
public static int getMax(int a,int b){
return a>b?a:b;
}
/*
1.函数
C:比较两个数是否相等
*/
public static boolean compare(int a,int b){
return a==b;
}
/*
1.函数
A:nn乘法表
*/
public static void table99(int num){
for(int i = 1;i<=num;i++){
for(int j = 1;j<=i;j++){
System.out.print(j+"*"+i+"="+j*i+"\t");
}
System.out.println();
}
}
/*
2.数组
数组的遍历
*/
public static void print(int[] arr){
for(int i = 0;i<arr.length-1;i++){
System.out.print(arr[i]+" ");
}
System.out.println(arr[arr.length-1]);
}
/*
2.数组
B:数组获取最值
*/
public static int getMaxArray(int[] arr){
int max = arr[0];
for(int i = 1;i<arr.length;i++){
if(arr[i]>max){
max = arr[i];
}
}
return max;
}
/*
2.数组
C:数组的查找
*/
public static int getIndex(int[] arr,int key){
for(int i = 0;i<arr.length;i++){
if(key == arr[i]){
return i;
}
}
return -1;
}
/*
3.二维数组
二维数组的遍历
*/
public static void printTD(int[][] arr){
for(int i = 0;i<arr.length;i++){
for(int j = 0;j<arr[i].length;j++){
System.out.print(arr[i][j]+"\t");
}
System.out.println();
}
}
/*
3.二维数组
二维数组的遍历求和
*/
public static int sumTD(int[][] arr){
int sum = 0;
for(int i = 0;i<arr.length;i++){
for(int j = 0;j<arr[i].length;j++){
sum += arr[i][j];
}
}
return sum;
}
}
|
|