黑马程序员——基础学习(三)函数和数组

来源:互联网 发布:语音变声器软件 编辑:程序博客网 时间:2024/05/17 03:05

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

函数(方法)

函数的格式:

修饰符 返回值类型 函数名(参数类型 形参名,参数类型 形参名,…){

执行语句;

return 返回值;

}

修饰符

返回值类型:任何数值类型、引用类型、void

参数列表:

形参类型:数值类型、引用类型

形参名:自定义标识符

参数列表可以有多个参数,每个参数由“参数类型 形参名”定义,多个参数间用逗号’,’隔开;

如果定义了返回值为非void类型,那么必须return 返回值类型的数据;

如果定义了返回值为void类型,可以return,但不能加返回值。此时的return代表结束方法;

在同一个类中,允许存在一个以上的同名函数,只要它们的参数个数或者参数类型不同即可。这种方式叫:方法的重载

我的想法

函数的掌握是最基础的,他代表了每个对象的行为体现!

数组

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

优点:可以自动给数组中的元素从0开始编号,方便操作这些元素。

格式1

元素类型[] 数组名 = new 元素类型[元素个数或数组长度];

示例:int[] arr = new int[5];

格式2

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

int[] arr = new int[]{3,5,1,7};

格式3

元素类型[] 数组名 = {元素,元素,……};

int[] arr = {3,5,1,7};

我的想法

数组的长度是不可变的所以比较好遍历

遍历

</pre><p><span style="font-family: monospace; white-space: pre; background-color: rgb(240, 240, 240);">for (int i = 0 ; i < arr.length ; i++){</span></p><span style="font-family: monospace; white-space: pre; background-color: rgb(240, 240, 240);">System.out.println(arr[i]);}</span><div><span style="font-family: monospace; white-space: pre; background-color: rgb(240, 240, 240);"></span><p>最大值和最小值</p><pre name="code" class="java">int max = arr[0];for (int i = 0 ; i < arr.length ; i++){max =arr[0]  > arr [1] ? arr[0] :s arr[1];}int min= arr[0];for (int i = 0 ; i < arr.length ; i++){min =arr[0]  > arr [1] ? arr[0] :s arr[1];} 
<strong>我的代码</strong>
<pre name="code" class="java">class Demo{public static void main(String[] args) {int[] scores = new int[5];scores[0] =54;scores[1] =43;scores[2] =76;scores[3] =89;scores[4] =87;for (int i =0 ;i<5 ;i++ ){System.out.println("第"+(i+1)+"个元素为:"+scores[i]);}}}class Demo {public static void main(String[] args) {int[] arr = {54,545,3,4543,3454,666345,4242,23};int max = arr[0];int min = arr[0];for (int i = 0;i < arr.length ; i++ ){max = max > arr[i] ? max : arr[i];min = min < arr[i] ? min : arr[i];}System.out.println("max=" + max);System.out.println("min=" + min);}}

二维数组[][]

格式1int[][] arr = new int[3][2];

 定义了名称为arr的二维数组

 二维数组中有3个一维数组

 每一个一维数组中有2个元素

 一维数组的名称分别为arr[0], arr[1], arr[2]

 给第一个一维数组1脚标位赋值为78写法是:arr[0][1] = 78;

格式2int[][] arr = new int[3][];

 二维数组中有3个一维数组

 每个一维数组都是默认初始化值null

 可以对这个三个一维数组分别进行初始化

  arr[0] = new int[3];

  arr[1] = new int[1];

  arr[2] = new int[2];

格式3int[][] arr = {{3,8,2},{2,7},{9,0,1,6}};

 定义一个名称为arr的二维数组

 二维数组中的有三个一维数组

 每一个一维数组中具体元素也都已初始化

 第一个一维数组 arr[0] = {3,8,2};

 第二个一维数组 arr[1] = {2,7};

 第三个一维数组 arr[2] = {9,0,1,6};

 第三个一维数组的长度表示方式:arr[2].length;

我的想法

我认为理解了数组之后二位数组并不难理解,只是有些东西需要注意,比如:二维数组的格式

int[][] arr = new int[][2];或者是int[][] arr = new int[][]; 都是非法的!

我的代码

classDemo{/*某公司采用公用电话传递数据信息,数据是小于8位的整数,为了确保安全,在传递过程中需要加密,加密规则如下:35843584 % 10 : 43584/10 % 10 : 83584/100 % 10 : 53584/1000 % 10 : 31.首先将数据倒序;48532.然后将每位数字都加上5,再用和除以10的余数代替该数字;    4853   +5555   %1093083.然后将第一位数字和最后一位数字交换。8309请任意给定一个小于8位的整数,然后把加密后的结果在控制台打印出来。*/public static void main(String[] args) {int num = 379851;//System.out.println(num);测试//1.首先将数据倒序;int[] arr = new int[7];arr[0] = num % 10;arr[1] = num / 10 % 10;arr[2] = num / 100 % 10;arr[3] = num / 1000 % 10;arr[4] = num / 10000 % 10;arr[5] = num / 100000 % 10;arr[6] = num / 1000000 % 10;//把数倒过来/*for (int i =0;i < arr.length;i++ ){System.out.print(arr[i]);测试}System.out.println();*/int j = 0;for (int i = (arr.length -1);i >= 0;i-- ){//确定位数j+1if (arr[i] != 0){j = i;break;}}int[] arr1 = new int[j+1];//排除多余位数,定义一个新的数组接收数  for (int i = (arr.length -1);i >= 0;i--){if (arr[i] != 0){arr1[i] =arr[i];}}/*for (int i =0;i < arr1.length;i++ ){System.out.print(arr1[i]);}System.out.println();输出倒叙后的数*///2.然后将每位数字都加上5,再用和除以10的余数代替该数字;for (int k = 0;k < arr1.length ;k++ ){//将每位数字都加上5,再用和除以10的余数代替该数字;03428arr1[k] = (arr1[k] + 5) % 10;}/*for (int i =0;i < arr1.length;i++ ){System.out.print(arr1[i]);}System.out.println();*///3.然后将第一位数字和最后一位数字交换。int x =0;x = arr1[j];arr1[j] = arr1[0];arr1[0] = x;//控制台打印for (int i =0;i < arr1.length;i++ ){System.out.print(arr1[i]);}}}



0 0