您的位置:首页 > 职场人生

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

2015-07-07 23:04 609 查看
------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);
}
}


二维数组[][]

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

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

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

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

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

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

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

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

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

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

  arr[0] = new int[3];

  arr[1] = new int[1];

  arr[2] = new int[2];

格式3:int[][] 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[][]; 都是非法的!

我的代码

class	Demo{
/*
某公司采用公用电话传递数据信息,数据是小于8位的整数,
为了确保安全,在传递过程中需要加密,加密规则如下:

3584

3584 % 10 : 4
3584/10 % 10 : 8
3584/100 % 10 : 5
3584/1000 % 10 : 3

1.首先将数据倒序;
4853

2.然后将每位数字都加上5,再用和除以10的余数代替该数字;
4853
+5555

%10
9308
3.然后将第一位数字和最后一位数字交换。
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+1
if (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的余数代替该数字;03428
arr1[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]);
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息