柚子快报必须要邀请码吗778899分享:java基础学习

http://yzkb.51969.com/

==========================================================================================================================================================

涉及到的知识点有:1:二维数组(理解)   (1)二维数组的定义   (2)二维数组的格式     格式一:(自动动态初始化)     格式二:(半自动动态初始化)     格式三:(静态初始化)     面试题:   (3)二维数组的案例(掌握)     A:二维数组的遍历     B:二维数组的求和     C:打印杨辉三角形(行数可以键盘录入)2:两个思考题(理解)   (1)Java中的参数传递问题及图解。   (2)数据加密问题。

==========================================================================================================================================================1:二维数组(理解)   (1)二维数组的定义:元素是一维数组的数组。   (2)二维数组的格式:     格式一:(自动动态初始化)       数据类型[][] 数组名 = new 数据类型[m][n];   //常用这个格式。       数据类型 数组名[][] = new 数据类型[m][n];   //该格式可以,但是很少用了。       数据类型[] 数组名[] = new 数据类型[m][n];   //该格式也可以,但是很少用了。       m表示这个二维数组有多少个一维数组。       n表示每一个一维数组的元素个数。       举例:         int[][] arr = new int[3][2];

        定义了一个二维数组arr。         这个二维数组有3个一维数组,名称是arr[0],arr[1],arr[2]。         每个一维数组有2个元素,可以通过arr[m][n]来获取。         即:    arr[m][n] 表示获取第m+1个一维数组的第n+1个元素。         例如:arr[1][2] 表示获取第2个一维数组的第3个元素。 如下如图所示01:

---------------------------------------     格式二:(半自动动态初始化)       数据类型[][] 数组名 = new 数据类型[m][];       m表示这个二维数组有多少个一维数组。       这一次没有直接给出一维数组的元素个数,可以动态的给出。       举例:         int[][] arr = new int[3][];         arr[0] = new int[2];         arr[1] = new int[3];         arr[2] = new int[1]; 如下如图所示02:

---------------------------------------     格式三:(静态初始化)       数据类型[][] 数组名 = new 数据类型[][]{ {...}, {...}, {...} };       数据类型[][] 数组名 = { {...}, {...}, {...} };   格式三的简化版格式     举例:       int[][] arr = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } };       int[][] arr = { { 1, 2, 3 }, { 4, 5 }, { 6 } }; 如下如图所示03:

    面试题:       下面定义的区别:       int x, y; //定义了1个int类型的变量x,同时也定义了1个int类型的变量y。       //等价于       int x;       int y;       ---------------------------------------       int[] x, y[]; //定义了1个int类型的一维数组x,同时也定义了1个int类型的二维数组y。       //等价于       int[] x;       int[] y[];

  (3)二维数组的案例(掌握):     A:二维数组的遍历       外循环控制的是二维数组的长度,其实就是一维数组的个数。       内循环控制的是一维数组的长度。       public static void printArray2(int[][] arr) {         for(int x = 0; x < arr.length; x++) {           for(int y = 0; y < arr[x].length; y++) {             System.out.print(arr[x][y]+" ");           }           System.out.println();         }       }     B:二维数组的求和       int sum = 0;       for(int x = 0; x < arr.length; x++) {         for(int y = 0; y < arr[x].length; y++) {           sum += arr[x][y];         }       }     C:打印杨辉三角形(行数可以键盘录入)

1 /*

2 需求:打印杨辉三角形(行数可以键盘录入)

3

4 1

5 1 1

6 1 2 1

7 1 3 3 1

8 1 4 6 4 1

9 1 5 10 10 5 1

10

11 分析:看这种图像的规律:

12 A:任何一行的第一列和最后一列都是1。

13 B:从第三行开始,除去第一列和最后一列,剩余的每一列的数据是它上一行的前一列和它上一行的本列之和。

14

15 步骤:

16 A:首先定义一个二维数组。行数如果是n,我们把列数也先定义为n。

17   这个n的数据来自于键盘录入。

18 B:给这个二维数组任何一行的第一列和最后一列赋值为1。

19 C:按照规律给其他元素赋值:

20 从第三行开始,除去第一列和最后一列,剩余的每一列的数据是它上一行的前一列和它上一行的本列之和。

21 D:遍历这个二维数组。

22 */

23 import java.util.Scanner;

24

25 class Array2Test3 {

26 public static void main(String[] args) {

27 //创建键盘录入对象。

28 Scanner sc = new Scanner(System.in);

29

30 //这个n的数据来自于键盘录入。

31 System.out.println("请输入一个数据:");

32 int n = sc.nextInt();

33

34 //定义二维数组

35 int[][] arr = new int[n][n];

36

37 //给这个二维数组任何一行的第一列和最后一列赋值为1

38 for(int x = 0; x < arr.length; x++) {

39 arr[x][0] = 1; //任何一行第一列

40 arr[x][x] = 1; //任何一行的最后一列

41 }

42

43 //按照规律给其他元素赋值

44 //从第三行开始,除去第一列和最后一列,剩余的每一列的数据是它上一行的前一列和它上一行的本列之和。

45 for(int x = 2; x < arr.length; x++) {

46 //这里如果 y <= x 是有个小问题的,就是最后一列的问题,因为最后一列已经给过值了。

47 //所以这里要减去1

48 //并且y也应该从1开始,因为第一列也给过值了。

49 for(int y = 1; y <= x - 1; y++) {

50 //除去第一列和最后一列,剩余的每一列的数据是它上一行的前一列和它上一行的本列之和。

51 arr[x][y] = arr[x - 1][y - 1] + arr[x - 1][y];

52 }

53 }

54

55 //遍历这个二维数组。

56 /*

57 for(int x = 0; x < arr.length; x++) {

58 for(int y = 0; y < arr[x].length; y++) {

59 System.out.print(arr[x][y]+"\t");

60 }

61 System.out.println();

62 }

63 */

64 //这个时候,要注意了,内循环的变化必须和曾经讲过的九九乘法表类似。

65 for(int x = 0; x < arr.length; x++) {

66 for(int y = 0; y <= x; y++) {

67 System.out.print(arr[x][y]+"\t");

68 }

69 System.out.println();

70 }

71 }

72 }

-----------------------------------------------------------------------------2:两个思考题(理解)   (1)Java中的参数传递问题及图解。     基本类型:形式参数的改变对实际参数没有影响。     引用类型:形式参数的改变直接影响实际参数。     基本类型:传递的是基本类型的数据值。     引用类型:传递的是地址值。     小结:不管怎么说,都是值,即在Java中,只有值传递。

如下图所示04:

  (2)数据加密问题。     综合的小案例。     int index = 0;     arr[index] = number % 10 = number / 1 % 10;     index++;     arr[index] = number / 10 % 10 = number / 10 % 10;     index++;     arr[index] = number / 10 / 10 % 10 = number /100 % 10;     ......     ---------------------------------------     int index = 0;     while (number > 0) {       arr[index] = number % 10;       number /= 10;     }

示例代码如下:

1 /*

2 把刚才的代码改进一下:

3 A:把数据改进为键盘录入

4 B:把代码改进为方法实现

5

6

7 另一个数据的测试:

8 number:1234567

9 第一步:7654321

10 第二步:2109876

11 第三步:6109872

12

13 知识点:

14 变量

15 数据类型

16 运算符

17 键盘录入

18 语句

19 方法

20 数组

21 */

22 import java.util.Scanner;

23

24 class JiaMiDemo2 {

25 public static void main(String[] args) {

26 //创建键盘录入对象

27 Scanner sc = new Scanner(System.in);

28

29 //请输入一个数据

30 System.out.println("请输入一个数据(小于8位):");

31 int number = sc.nextInt();

32

33 //写功能实现把number进行加密

34 //调用

35 String result = jiaMi(number);

36 System.out.println("加密后的结果是:"+result);

37 }

38

39 /*

40 需求:写一个功能,把数据number实现加密。

41 两个明确:

42 返回值类型:String 为了做一个字符串的拼接。

43 参数列表:int number

44 */

45 public static String jiaMi(int number) {

46 //定义数组

47 int[] arr = new int[8];

48

49 //定义索引

50 int index = 0;

51

52 //把number中的数据想办法放到数组中

53 while(number > 0) {

54 arr[index] = number % 10;

55 index++;

56 number /= 10;

57 }

58

59 //把每个数据加5,然后对10取得余数

60 for(int x = 0; x < index; x++) {

61 arr[x] += 5;

62 arr[x] %= 10;

63 }

64

65 //把第一位和最后一位交换

66 int temp = arr[0];

67 arr[0] = arr[index - 1];

68 arr[index - 1] = temp;

69

70 //把数组的元素拼接成一个字符串返回

71 //定义一个空内容字符串

72 String s = "";

73

74 for(int x = 0; x < index; x++) {

75 s += arr[x];

76 }

77

78 return s;

79 }

80 }

=============================================================================

柚子快报必须要邀请码吗778899分享:java基础学习

http://yzkb.51969.com/

精彩链接

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。