Java:控制流程 + 数组 详解(原理 + 用法 + 例子)

目录

    • 控制流程
      • 块作用域
      • if 条件语句
      • for while 循环
      • switch 多重选择
      • break continue 中断控制流程语句
    • 大数值
    • 数组
      • 多维数组
      • 字符串类型数组
      • Array.sort() 数组排序
      • for each 循环

控制流程

块作用域

块(即复合语句)是指由一对大括号{}括起来的若干条简单的 Java 语句。块确定了变量的作
用域。一个块可以嵌套在另一个块中。

不能在块的嵌套中声明相同的变量。

任何语言中其内部原理都是用实现的。

if 条件语句

if (条件1){
	满足条件1执行;
}else if (条件2)
{
	满足条件2执行;
}else{
	上述都不满足执行;
}

在这里插入图片描述

for while 循环

for (变量; 条件; 变量的变化) // 里面也可以只有条件
{
	符合条件执行;
}

while(条件){
	符合条件执行;
}

还有 do while循环,先执行后判断条件。
在这里插入图片描述
在这里插入图片描述
可以写一个死循环:

import java.util.*;
public class Test{
	public static void main(String[] xxx){
		while(true){
			System.out.println("=======");
		}
		
	}
}

在这里插入图片描述
Ctrl + c 可以中断执行。

switch 多重选择

switch(x){ // x 为一个变量
	case 条件1:
		x满足条件1执行;
		break;
	case 条件2:
		x满足条件2执行;
		break;
	case 条件3:
		x满足条件3执行;
		break;
	default:
		x都不满足执行;
		break;
}

在这里插入图片描述

switch击穿:如果没有break,匹配之后会接着往下执行。
switch可选类型:char byte short int String 枚举

break continue 中断控制流程语句

break 打断循环,但只能跳出一层循环。
continue 跳过本次循环,进行下一次循环。

大数值

导入包 import java.math.*;

基本的整数和浮点数精度不能够满足需求, 那么可以使用 jaVa.math 包中的两个很有用的类: Bi glnteger 和 BigDecimaL 这两个类可以处理包含任意长度数字序列的数值。

Biglnteger 类实现了任意精度的整数运算。
BigDecimal 实现了任意精度的浮点数运算。
底层是 char 类型的数组来存的。
所以在项目中很多需要精确计算的都会使用其来代替基本类型。

注意其属于的引用类型,也不能运算符重载, 所以没有像 +、* 的操作,但可以利用如下方法:
valueOf(x) // 将x普通数值转换为大数值
a.add(b) // a + b
a.multiply(b) // a * b
在这里插入图片描述

数组

数组是一种数据结构,用来存储同一类型值的集合。通过一个整型下标可以访问数组中的每一个值。
例如,如果 a 是一个整型数组,a[i] 就是数组中下标为 i 的整数。

int [] a; // 声明数组
int a[]; // 也可以这样c语言的分格写,不过一般用上一种。
int [] a = new int [100]; // 初始化创数组

数组物理地址连续
只有基本类型的一维数组,数据才会在物理地址上严格连续。

Java中的引用类型完全等于c语言中的指针
数组无论多大,都只记录第一个的地址

在这里插入图片描述
元素地址 = 首地址 + i * m; // i 为下标(第 i + 1的位置),m 为所存的数据类型大小。

在计算机中,若一块数据没有任何一个地方记录其地址,将被标记为空白无效,被销毁。
在这里插入图片描述

多维数组

在这里插入图片描述
二维数组的储存:
在这里插入图片描述
可以发现数组之间都是通过记录地址来联系,真实地址并不连续。
三维数组与之同理:
在这里插入图片描述

字符串类型数组

	String[] arr2 = {"d","dsfs","daadf", "dd"};

在这里插入图片描述
也是存放的地址。
在修改 daadf 为 eeeeeee 时,不是在原位置修改,而是新创建一个再把对应位置地址指向它,而原来的 daadf 将被销毁。
在这里插入图片描述

Array.sort() 数组排序

导入import java.util.*;

Array.sort(arr) 对 arr 排序,内部和C++一样也是快排。不局限于基本类型,引用类型也可以,后面再介绍。
Array.toString(arr) 打印数组

import java.util.*;
public class Test{
	public static void main(String[] xxx){
		
		int[] arr = {1, 34, 3, 4, 5,8, 9,-1,12,33, 90};
		Arrays.sort(arr);
		System.out.println(Arrays.toString(arr));
		
	}
}

在这里插入图片描述

for each 循环

Java 有一种功能很强的循环结构,可以用来依次处理数组中的每个元素(其他类型的元素集合亦可)而不必为指定下标值而分心 。

for ( variable : collection ) statement

import java.util.*;
public class Test{
	public static void main(String[] xxx){
		int[] arr = {1, 34, 3, 4, 5,8, 9,-1,12,33, 90};
		Arrays.sort(arr);
		System.out.println(Arrays.toString(arr));
		
		for (int w: arr){
			System.out.println(w);
		}
		String[] arr2 = {"aa", "bb", "cc"};
		for (String w : arr2){
			System.out.println(w);
		}
		Object[] arr3 = {new Object(), new Object(), new Object()};
		for (Object w : arr3){
			System.out.println(w);
		} 
		
	}
}

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

断路器绝缘电阻试验

断路器 绝缘电阻试验 试验目的 检验断路器合闸后灭弧室、 主绝缘和提升杆是否发生受潮, 劣化变质等缺陷。 试验设备 绝缘电阻测试仪 厂家: 湖北众拓高试 试验接线 相对地 端口间 试验步骤 真空断路器本体与断口的绝缘电阻 试验前对兆欧表本身进行检…

C++服务器框架开发11——编译调试1/cmake学习

该专栏记录了在学习一个开发项目的过程中遇到的疑惑和问题。 其教学视频见:[C高级教程]从零开始开发服务器框架(sylar) 上一篇:C服务器框架开发10——日志系统1~9代码 C服务器框架开发11——编译调试1/cmake学习 目前进度ubuntu下的cmake学习简单样例同…

使用Django数据库模型中的ForeignKey()形成数据表记录的父子层次结构

可以把ForeignKey()的第1个参数设置为值 “self” 实际形成数据表记录的父子层次结构。 下面是一个简单的实例: 在文件 E:\Python_project\P_001\myshop-test\myshop\app1\models.py 中写入下面的代码: from django.db import models# Create your mod…

创建型模式

创建型模式(Creational Pattern)关注对象的创建过程,是一类最常用的设计模式,在软件开发中应用非常广泛。创建型模式将对象的创建和使用分离,在使用对象时无须关心对象的创建细节,从而降低系统的耦合度&…

叮,您有一份《C语言思维导图》,请注意查收

目录导航 🚀 前言📺配套教程推荐🔰文章列表📚Part 1:初识C语言📚Part 2:分支和循环语句📚Part 3:函数📚Part 4:数组📚Part 5&#xff…

【数据结构】手撕排序NO.1----排序初识

目录 一. 前言 二. 排序的概念及运用 2.1 排序的概念 2.2 排序的运用 2.3 常见的排序算法 三. 冒泡and选择排序 3.1 冒泡排序 3.2 选择排序 四. 各大排序算法的复杂度和稳定性 一. 前言 从本期开始,我们的数据结构将迎来一个新的篇章:排序篇&#xff…

基于RASC的keil电子时钟制作(瑞萨RA)(1)----安装RASC

基于RASC的keil电子时钟制作_瑞萨RA_1安装RASC 概述硬件准备视频教程RA Smart Configurator软件下载RASC安装Keil下Renesas RA pack包安装 概述 RA Smart Configurator"是一种基于"灵活组合软件"概念的代码生成辅助工具。它可以自动生成微控制器的初始配置程序…

看见未来:定位咨询如何预测行业趋势

商业竞争时代,变化无处不在。科技日新月异,消费者需求日益多元,市场环境更加动态不定。在这个快速发展的时代,如果企业想要继续领先,就必须有能力预见未来,适应并驾驭这些变化,这就是定位咨询的…

【ElasticSearch】ES集群搭建、监控、故障转移

文章目录 1、ES集群介绍2、搭建ES集群3、集群状态监控4、集群职责及脑裂5、分布式新增和查询流程6、ES故障转移 1、ES集群介绍 单机的ES做数据存储与搜索,必然面临两个问题: 海量数据存储问题单点故障问题 因此,考虑使用ES集群&#xff1a…

LCD-STM32液晶显示中英文-(5.字符编码)

目录 字符编码 字符编码说明参考网站 字符编码 ASCII编码 ASCII编码介绍 ASCII编码表 中文编码 1. GB2312标准 区位码 2. GBK编码 3. GB18030 各个标准的对比说明 4. Big5编码 字符编码 字符编码说明参考网站 字符编码及转换测试:导航菜单 - 千千秀字 …

学习AJAX

AJAX 🚀 HTTP请求报文响应报文 🚄 express框架🚬 express基本使用 🚒 原生AJAX🚬 GET.HTML🚬 POST.HTML🚬 JSON.HTML🚬 nodemon工具可以帮助重启服务🚬 IE缓存问题&#…

Devops系列五(CI篇之pipeline libraray)jenkins将gitlab helm yaml和argocd 串联,自动部署到K8S

一、说在前面的话 本文是CI篇的上文,因为上一篇已经作了总体设计,就不再赘述,有需要的请看前文。 我们将演示,使用CI工具–jenkins,怎么和CD工具–argocd串联,重点是在Jenkins该怎么做。准备工作和argocd等…

Java springBoot项目报LDAP health check failed

报错内容如下: 在bootstrap.yml文件里加 management:health:ldap:enabled: false 配置。 或者在application.properties文件里加: management.health.ldap.enabledfalse 参考答案:LDAP health check failed 难道没有人遇到这样的问题吗&…

TCP/IP基础知识笔记

应用层:为用户提供应用功能,比如 HTTP、FTP、Telnet、DNS、SMTP等。 应用层是工作在操作系统中的用户态,传输层及以下则工作在内核态。 传输层:为应用层提供网络支持。 *TCP包含众多特性比如流量控制、超时重传、拥塞控制等因此可…

【CPU】关于x86、x86_64/x64、amd64和arm64/aarch64

为什么叫x86和x86_64和AMD64? 为什么大家叫x86为32位系统? 为什么软件版本会注明 for amd64版本,不是intel64呢? x86是指intel的开发的一种32位指令集,从386开始时代开始的,一直沿用至今,是一种cisc指令…

LinkNet分割模型搭建

原论文:LinkNet: Exploiting Encoder Representations for Efficient Semantic Segmentation 直接步入正题~~~ 一、LinkNet 1.decoder模块 class DecoderBlock(nn.Module):def __init__(self, in_channels, n_filters): #512, 256super(DecoderBlock, self).__in…

linux kernel单独编译某项驱动

linux内核经常涉及编译某一项驱动代码的场景,本次以网卡驱动e1000为例说明整个步骤流程。 首先编译内核驱动不必要编译整个内核,但编译的驱动代码必须要和要安装的内核版本保持一致,否则经常会出现无法加载模块。 在编译驱动前,最…

大坝安全监测中需要做好检查监测

大坝安全监测是人们了解大坝运行状态和安全状况的有效手段和方法。它的目的主要是了解大坝安全状况及其发展态势,是一个包括由获取各种环境、水文、结构、安全信息到经过识别、计算、判断等步骤,最终给出一个大坝安全 程度的全过程。 此过程包括&#xf…

layui增删改查的实现

前言 在前三篇layui博客的基础上继续完善,这篇博客增加了数据表格来实现增删改查 这里要注意layui需要使用2.6以上的版本 dao方法的编写 package com.zking.dao;import java.util.List; import java.util.Map;import com.zking.entity.User; import com.zking.uti…

进销不匹配将被严查,增值税高怎么办?

进销不匹配将被严查,增值税高怎么办? 《税筹顾问》专注于园区招商、企业税务筹划,合理合规助力企业节税! 金税四期是通过对企业所得税、增值税、个人所得税等各类税种的统一管理,实现对企业财务活动的全面监管和规范&…