JavaSE学习笔记-2-0214

数组的相关知识

数组定义:

                                        数据类型[] 数组名 = {元素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");
        }


    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值