数组的相关知识
数组定义:
数据类型[] 数组名 = {元素1, 元素2, 元素3};例如:
int[] arrs = {1, 4, 5, 7, 2};
double[] scores = {77.3, 234.5, 234.5};
String[] names = {"熊二", "光头强", "李老板"}
数组原理:
//数组定义: 数字和字符串:
int[] arr = {20, 10, 80, 60, 90};
String[] names = {"牛二", "西门", "全蛋"};
System.out.println(names);//输出结果:[Ljava.lang.String;@1b6d3586
System.out.println(arr);//输出结果:[I@4554617c 具体地址信息
System.out.println(names[0]);//结果:牛二
int a = 2;
System.out.println(names[a]);//结果:全蛋
获取数组长度:
数组名.length
数组最大索引:
数组名.length - 1 (前提是数组元素数目大于0)
动态初始化数据:
提前定下数组名和长度(不一定定下长度),时候输入数组元素值
int[] arrs = new int[3];
猜数字游戏:
重点是17行的break出口。与25行break OUT; 呼应,跳出两个循环格式
帮助完成功能
import java.util.Random;
import java.util.Scanner;
public class GussNum2 {
public static void main(String[] args){
Random nr = new Random();
Scanner ns = new Scanner(System.in);
//创建五个元素的数组,使用循环在1~20之间随机定义
int[] arr = new int[5];
for (int i=0; i<arr.length; i++){
arr[i]=nr.nextInt(20)+1;
}
System.out.println("请猜测一个1~20的数字:");
//这里需要注意,做了一个出口,方便break跳出,重点
OUT:
while (true){
int yas = ns.nextInt();
for (int i = 0; i < arr.length; i++) {
if (yas==arr[i]){
System.out.println("恭喜你猜对了,你猜中了第"+(i+1)+"个数");
//与此处跳出相呼应
break OUT;
}
}
System.out.println("很遗憾请再试一次");
}
System.out.println("五个数字分别是:");
for (int i = 0; i <arr.length ; i++) {
System.out.print(arr[i]+"\t");
}
}
}
tips:快速打好for (int i=0; i<arr.length; i++),只需 arr.fori 回车
随机排名汇报:
项目有5名开发人员,要进行汇报演讲,现依次(录入)五人工号,进行随机排序
一开始对打乱顺序没有头绪,思维固着在利用Random随机五个数字排大小,再用大小顺序号作为新的输出号,太慢太多太难了
后来经过点拨,发现利用Random可以直接随机交换顺序。(19~23行)
import java.util.Random;
import java.util.Scanner;
public class RandomRank {
public static void main(String[] args){
Scanner ns = new Scanner(System.in);
Random nr = new Random();
int[] arr = new int[5];
System.out.println("请分别输入五位员工工号");
for (int i = 0; i < arr.length; i++) {
arr[i] = ns.nextInt();
}
System.out.println("5位员工工号按输入顺序分别是");
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i]+"\t");
}
//这是我没想到的,随机交换位置
for (int i = 0; i < arr.length; i++) {
int j = nr.nextInt(5);
int ex=arr[i];
arr[i]=arr[j];
arr[j]=ex;
}
System.out.println("\n5位员工工号打乱顺序后分别是");
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i]+"\t");
}
}
}