JavaSE_2.1——数组【概念、创建、内存分配】

news2024/11/28 10:52:55

今天是练习数组的第一天,后续继续

1、数组的定义以及声明 

1.数组的定义:一组能够存储相同数据类型值的变量的集合

2.数组的赋值方式:

New关键字:表示创建一个数组;

(1)使用默认的初始值来初始化数组中的每一个元素

语法:数组元素类型[ ] 数组名 = new 数组元素类型[数组中元素的个数(数组的长度)]

例如:int[ ]scores = new int[3];

(2)先声明,然后再赋予默认的初始值

语法:数组元素类型[ ] 数组名;

数组名 = new 数组元素类型[数组中元素的个数]

                例如:int[ ]scores; 

                          scores = new int [3];

(3)先声明,,然后再使用指定的值进行初始化

语法:数组元素类型[ ] 数组名 = new 数组元素类型[ ]{元素1,元素2……}

如:int [ ]scores = new int[ ]{56,87,65};

(4)将第三种写法可以简化为(使用数组常量给数组进行赋值)

语法:数组元素类型[ ] 数组名 = {元素1,元素2……}

如:int [ ]scores = {45,56,89};

(5)int[ ] arr         表示定义一个int类型的数组arr

         Int  arr[ ]         表示定义一个int类型的变量,变量名是arr数组

2、数组的长度

求数组的长度:数组名.length

通过下标来访问数组中的元素。下标:从o开始,到数组长度-1

                如: int[] scores = {89,90};

访问最后一个元素值:

int lastElement = scores[scores.length-1];

3、数组的遍历

遍历:依次取出数组中的每一个元素。

3.1  遍历方式一:普通的for循环

语法:

for(int i =0; i<数组的长度;i++){

    //i:循环变量,同样:也是数组的下标(取值范围[0,数组长度])

    数组中元素的类型 变量=数组名[i];

}

3.2  增强for循环与可变参数

(1)JDK1.5以后Java新增foreach循环和可变参数。遍历方式二:使用增强for循环【foreach循环】

语法:

​​​​​​​for(数组中元素的类型 变量:数组名){

    数组中元素的类型 临时变量=变量;

}

(2)结合方法的定义,可以用可变参数来代替数组作为参数。

public static void print(int ...变量名){

    //可变参数在使用时只能作为数组使用;而且只能是参数列表中的最后一个

}

4、使用数组时要注意的两个异常:

(1)NullPointerException(空指针异常) java . lang. NullPointerException

出现该异常的情况:当一个变量为null(没有赋值时)时,我们去调用了该变量的属性和方法

(2)数组下标越界异常:java . lang. ArrayIndexoutofBoundsException

比如:for(int i=0;i<=x.length;i++)时,将会出现错误

5、Random的作用和使用步骤

作用:用于产生一个随机数

使用步骤:

①导包:import java.util .Random;导包的动作必须出现在类定义的上面

②创建对象:Random r = new Random( ) ;

上面这个格式里面,r是变量名,可以变,其他的都不允许变

③获取随机数:int number = r.nextInt(10);

//获取数据的范围:[0,10)包括0 ,不包括10上面这个格式里面,number是变量名,可以变,数字10可以变。其他的都不允许变

import java.util.Scanner;
import java.util.Random;

public class text5{
    public static void main(String[] args){
        for(int hour=0;hour<=2; hour++){ //循环语句的嵌套;
            for(int minute = 1;minute <5;minute++){
                System.out.println(hour+"时"+minute+"分");
            }

            System.out.println("---------");

        }

        Random r = new Random(); //注意大小写;
        for (int i= 1;i<=5;i++){
            int number = r.nextInt(10); //10以内的随机数;
            System.out.println(number);
        }

        //从键盘输入一个数,判断数组中是否包含此数(随机数);

        int[] num = new int[5]; //创建一个长度为5的数组;

        int len = num.length;

        Random a = new Random(); //创建一个随机数给a;

        for(int i=0;i<len;i++){
            num[i] = a.nextInt(50); //将随机数[0.50)以内的数保存到数组中;
        }

        Scanner input = new Scanner(System.in); //键盘输入一个数;
        System.out.print("请输入您要猜的数(50以内):");
        int userNum = input.nextInt();


        boolean flag = false;
        
        for(int x=0;x<len;x++){
            if(userNum==x){ //判断输入的数字和数组中的数字是否相等;
                flag = true;
                break;
            }

        }

        if(flag){
            System.out.println("恭喜你,猜对了");    
        }else{
            System.out.println("不好意思,猜错了");
    
        }

    }

}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/843797.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

我的Python教程:Tkinter组件布局管理的3种方式

**Tkinter组件布局管理可以使用pack()方法、grid()方法和place()方法。**pack()方法将组件放置在窗口中&#xff0c;grid()方法将组件放置在网格布局中&#xff0c;place()方法将组件放置在指定位置。 01使用pack()方法布局&#xff1a; 在Tkinter中&#xff0c;pack方法用于将…

【双指针_快乐数_C++】

题目解析 快乐数 算法原理 快慢双指针1、定义快慢指针 2、慢指针每次向后移动一步&#xff0c;快指针每次向后移动两步。 3、判断相遇的时候的值 编写代码 class Solution { public:int num_sum(int n){int sum 0;while(n!0){int t n%10;sumt*t;n n/10;}return sum;}bool…

Visio Studio Code 搭建Vue开发环境

一、安装Visual Studio Code 使用 Visual Studio Code&#xff08;VS Code&#xff09;开发 Vue.js 应用是一种常见的做法&#xff0c;以下是简要的步骤&#xff1a; 安装 VS Code&#xff1a; 如果您尚未安装 Visual Studio Code&#xff0c;您可以从官方网站&#xff08;htt…

作为一名软件测试工程师,需要具备哪些能力?

软件测试工程师是个神奇的职业&#xff0c;他是开发人员与老板之间的传话筒&#xff0c;也是开发人员与老板的好帮手。他不仅需要有销售的沟通能力&#xff0c;也需要具备编辑人员的文档撰写技巧。如此一个面面俱到的岗位&#xff0c;他需要具备的技能到底有哪些呢&#xff1f;…

互联网智能3D导诊系统源码支持微信小程序、APP

通过智能导诊&#xff0c;进行自助问询及挂号服务&#xff0c;减轻导诊台护士压力&#xff0c;挂号更加方便快捷。 系统技术架构&#xff1a;springbootredismybatis plusmysqlRocketMQ 一、智慧导诊系统开发原理 导诊系统从原理上大致可分为基于规则模板和基于数据模型两类…

人工智能进入到制造业后,可以带来哪些方面的新改变?

随着人工智能&#xff08;AI&#xff09;进入制造业&#xff0c;它有可能带来重大变化和改进。以下是人工智能可以给制造业带来的一些关键变化&#xff1a; 1.提高效率和生产力&#xff1a;人工智能可以通过分析大量数据并识别低效率来优化生产流程。它可以帮助简化制造运营、…

【100天精通python】Day28:文件与IO操作_JSON文件处理

目录 专栏导读 1. JSON数据格式简介 1.1 示例JSON数据 1.2 JSON文件的特点 2 json模块的常用操作 2.1 读写JSON文件的示例 2.2 解析JSON字符串 2.3 修改JSON数据 2.4 查询和操作嵌套数据 2.5 处理包含特殊字符的JSON文件 2.6 处理日期和时间 2.7 处理大型JSON文…

【web逆向】全报文加密及其登录流程的分析案例

aHR0cHM6Ly9oZWFsdGguZWxkZXIuY2NiLmNvbS9zaWduX2luLw 涉及加密库jsencrypt 定位加密点 先看加密的请求和响应&#xff1a; 全局搜索加密字段jsondata&#xff0c;这种非特定参数的一般一搜一个准&#xff0c;搜到就是断点。起初下的断点没停住&#xff0c;转而从调用栈单步…

MySQL—— 基础语法大全

MySQL—— 基础 一、MySQL概述1.1 、数据库相关概念1.2 、MySQL 客户端连接1.3 、数据模型 二、SQL2.1、SQL通用语法2.2、SQL分类2.3、DDL2.4、DML2.5、DQL2.6、DCL 三、函数四、约束五、多表查询六、事务 一、MySQL概述 1.1 、数据库相关概念 数据库、数据库管理系统、SQL&a…

谈谈DNS是什么?它的作用以及工作流程

作者&#xff1a;Insist-- 个人主页&#xff1a;insist--个人主页 作者会持续更新网络知识和python基础知识&#xff0c;期待你的关注 目录 一、DNS是什么&#xff1f; 二、DNS的作用 三、DNS查询流程 1、查看浏览器缓存 2、查看系统缓存 3、查看路由器缓存 4、查看ISP …

arcgis栅格数据之最佳路径分析

1、打开arcmap&#xff0c;加载数据&#xff0c;需要对影像进行监督分类&#xff0c;如下&#xff1a; 这里任选一种监督分类的方法&#xff08;最大似然法&#xff09;&#xff0c;如下&#xff1a; 这里会先生成一个.ecd文件&#xff0c;然后再利用.ecd文件对影像进行分类。如…

论 SoC上的Linux如何拉动外部I/O

在MCU中&#xff08;如classic autosr或其他RTOS&#xff09;&#xff0c;一般可以直接通过往对应的寄存器&#xff08;地址转为指针&#xff09;写值&#xff0c; 或者调用一些硬件抽象层或者驱动接口来拉动芯片提供的GPIO。 但是在Linux中&#xff0c;可能不会让应用层直接去…

[CKA]考试之查看pod的cpu

由于最新的CKA考试改版&#xff0c;不允许存储书签&#xff0c;本博客致力怎么一步步从官网把答案找到&#xff0c;如何修改把题做对&#xff0c;下面开始我们的 CKA之旅 题目为&#xff1a; Task 找出标签是namecpu-loader的Pod&#xff0c;并过滤出使用CPU最高的Pod&#…

MCUXpresso for VS Code -- 基于VSCode开发RT1176

MCUXpresso for VS Code 是nxp推出插件&#xff0c;旗下MCX LPC, Kinetis和i.MX rt等MCU&#xff0c;都能在VS Code平台进行嵌入式开发。功能框图如下&#xff1a; 前期准备&#xff1a; 软件环境: windows(实际可以跨系统&#xff0c;linux和mac没有测试) VS Code ninja CMa…

LeetCode 热题 100 JavaScript--206. 反转链表

/*** Definition for singly-linked list.* function ListNode(val, next) {* this.val (valundefined ? 0 : val)* this.next (nextundefined ? null : next)* }*/ /*** param {ListNode} head* return {ListNode}*/1、逐个断键&#xff0c;将后一个节点放到前面 …

C语言笔试训练【第四天】

文章目录 1、设变量已正确定义&#xff0c;以下不能统计出一行中输入字符个数&#xff08;不包含回车符&#xff09;的程序段是&#xff08; &#xff09; 2、运行以下程序后&#xff0c;如果从键盘上输入 65 14<回车> &#xff0c;则输出结果为&#xff08; &#xff0…

centos7 yum源安装出错及更新问题

如下 首先&#xff0c;在搜索jdk时报错如下&#xff1a; 解决办法 1、进入 yum的repo目录 cd /etc/yum.repos.d/2、修改所有的CentOS文件内容 sed -i s/mirrorlist/#mirrorlist/g /etc/yum.repos.d/CentOS-*sed -i s|#baseurlhttp://mirror.centos.org|baseurlhttp://vau…

《南方都市报》:大众点评等互联网平台陷医美虚假“种草”质疑,或涉嫌违规广告

植发、整容&#xff0c;正在走向大众。近日&#xff0c;“妈妈带高考结束女儿整容提升自信”“长沙学生族暑假扎堆整容”等多个相关话题冲上热搜&#xff0c;学生整形热引发广泛关注。 爱美之心&#xff0c;人皆有之&#xff0c;当下早不是谈整容色变的时候&#xff0c;有人在…

【深度学习中的批量归一化BN和层归一化LN】BN层(Batch Normalization)和LN层(Layer Normalization)的区别

文章目录 1、概述2、BN层3、LN层4、Pytorch的实现5、BN层和LN层的对比 1、概述 归一化(Normalization) 方法&#xff1a;指的是把不同维度的特征&#xff08;例如序列特征或者图像的特征图等&#xff09;转换为相同或相似的尺度范围内的方法&#xff0c;比如把数据特征映射到[…

IO学习-有名管道

1&#xff0c;要求实现AB进程对话 A进程先发送一句话给B进程&#xff0c;B进程接收后打印 B进程再回复一句话给A进程&#xff0c;A进程接收后打印 重复1.2步骤&#xff0c;当收到quit后&#xff0c;要结束AB进程 运行结果&#xff1a;