一. Random类
1.Random类的作用是获取伪随机数. 2.获取随机数的步骤: 1)导包 java.util.Random; 2)创建Random对象 Random ran = new Random(); 3)调用nextInt(数值)生成随机数 int i = ran.nextInt(100); //生成随机数i 他的范围是 [0,100) 包含0 不包含100 3.猜数字小游戏 /* * 猜数字小游戏: * 规则: 随机生成一个1-100的随机数, 再键盘录入一个数, 看看你录入的数和随机数是否相同. * * 分析: * 1. 准备工作 * Random 对象 生成随机数 ----> ran.nextInt(100) + 1; * Scanner 对象 Scanner sc = new Scanner(System.in); * 2.由于要猜多次,键盘录入的方法要写在哪? * while(true){ //让用户不断录入 * int i = sc.nextInt(); * if(大了){ * 提示大了 * }else if(如果小了){ * 提示小了 * }else { * 提示猜中了 * 跳出循环 * } * } */二. 数组
1.数组: 能够存储多个同一种数据类型的元素就叫数组. (同一种数据类型的容器) 2.格式: 数据类型[] 数组名 ; <-----> int[] a = ; 数据类型 数组名[] ; <-----> int a[]; 3.数组的初始化(就是给数组赋值) 1)动态初始化 数据类型[] 数组名 = new 数据类型[长度]; 举例: int[] arr = new int[5]; 2)获取数组的元素 通过索引(或者下标)的方式来获取每一个元素. int a = arr[索引]; 3)静态初始化的格式 数据类型[] 数组名 = new 数据类型[]{元素1,元素2,元素3...}; 举例: int[] arr = new int[]{1,2,3}; 简化格式: 数据类型[] 数组名 = {元素1,元素2,元素3...}; int[] arr = {1,2,3,4,5}; 4.数组操作的两个问题 1)如果我们访问到了超过最大索引的元素会怎么样? 问题: 数组索引下标越界异常 java.lang.ArrayIndexOutOfBoundsException 2)问题1: 空指针异常 java.lang.NullPointerException null 断开引用数据类型 int[] arr = {1,2,3}; arr = null; arr[0] = 10; 原因:因为对象指向了一个null,中断了原来与堆里对象的关联. 由于空对象(null),调用方法; 或者空对象调用属性. 练习: /* 使用静态初始化定义一个长度为4的数组 为数组中的元素赋值为11,33,77,22 求出数组中的最小值并打印 分析: 1)定义一个数组 {11,33,77,22}; 2)先假设 int min = arr[0] 第一个元素是最小值 3)循环数组 比较 if(min > arr[i]) min = arr[i]; */ public class Demo4 { public static void main(String[] args) { int[] arr = {11,33,77,22}; int min = arr[0]; for (int i = 0 ; i < arr.length ; i++){ //如果arr[i] 小与 min 的话, 就把arr[i]赋值给min if(min > arr[i]){ min = arr[i]; } } System.out.println(min); } }三.二维数组
二维数组就是数组中存放的一维数组. 格式: 1)动态初始化格式 数据类型[][] 数组名 = new 数据类型[m][n]; //m代表二维数组的长度, n代表以为数组的长度; 后面的n可以不用写 举例: int[][] arr = new int[3][2]; int[] arr[] = new int[3][2]; 不推荐 int arr[][] = new int[3][2]; 不推荐 2)静态初始化 数据类型[][] 数组名 = new 数据类型[][]{{元素1,元素2},{元素1,元素2},{...}..}; 举例: int arr [][] = new int[][]{{1,2,3},{1,2}}; 简化格式: 数据类型[][] 数组名 = {{元素1,元素2},{元素1,元素2},{...}..}; 获取元素: arr[索引] ----> 二维数组中的一维数组 arr[二维数组的索引][一维数组的所以] -----> 二维数组中一维数组中的元素