疯狂JAVA讲义---第四章(上):流程控制和数组

VCS多lib编译实战:如何高效处理Verilog模块重命名与分开编译 本文深入探讨了在复杂SoC设计中,如何利用VCS工具实现多库编译,以高效处理Verilog模块重命名与分开编译的工程难题。通过解析synopsys_sim.setup配置、Config映射机制,并提供完整的自动化脚本实战指南,帮助工程师构建健壮、可维护的编译环境,从而显著提升大型项目的编译效率和代码管理灵活性。 阅读详情

第四章 流程控制和数组

这一章网上有试读,大家可以去下载了看,也可以看我以下的总结。

顺序结构:这个没什么好说的,是门编程语言就有。

分支结构:也就是if...else,太简单,就是写条件语句有个原则:一定要先处理包括范围更小的情况。eg,你要先判断你是男人,再判断你是人,不然就永远到不了你是男人这个条件。

然后就是switch语句后面的表达式类型只能是byte,short,char和int。还有case后面不要忘了break。

循环语句:循环最怕的就是进入死循环这个大家要注意。使用for时要记住:不管是否使用continue来结束本次循环,迭代语句一样是会执行的。

java标签的使用,这个一般大家不太会用,其实也是满好用的,就是加在循环语句前(名字加冒号),使用时break或continue加标签名。这和vb等语言的goto有点相似,但还是有差别的,java只用在循环语句中。

接下来讲数组,数组在java中只能放同种数据类型,但如果你吧数组定义成object,那其实数组中什么对象都可以放。

数组默认分配初始值:

(byte,short,int,long)为0

(float,double)为0.0

(char)为/u0000

(boolean)为false

引用类型为null

JDK1.5后提供了foreach来遍历数组和集合,一般用在输出时使用方便,赋值什么会出现问题,还是老老实实用for为妙。

数组的本质,其实数组在栈存了指针指向堆中的实际数组。

这就是为什么会产生数组可变的假象,eg

  1. public static void main(String[] args) 
  2.     {
  3.         //定义并初始化数组,使用静态初始化
  4.         int[] a = {5, 7 , 20};
  5.         //定义并初始化数组,使用动态初始化
  6.         int[] b = new int[4];
  7.         //输出b数组的长度
  8.         System.out.println("b数组的长度为:" + b.length);
  9.         //循环输出a数组的元素
  10.         for (int i = 0 ; i < a.length ; i++ )
  11.         {
  12.             System.out.println(a[i]);
  13.         }
  14.         //循环输出b数组的元素
  15.         for (int i = 0 ; i < b.length ; i++ )
  16.         {
  17.             System.out.println(b[i]);
  18.         }
  19.         //因为a是int[]类型,b也是int[]类型,所以可以将a的值赋给b。
  20.         //也就是让b引用指向a引用指向的数组
  21.         b = a;
  22.         //再次输出b数组的长度
  23.         System.out.println("b数组的长度为:" + b.length);
  24.     }

书中举的一个数组使用实例

  1. public class Num2Rmb
  2. {
  3.     private String[] hanArr = {"零" , "壹" , "贰" , "叁" , "肆" , 
  4.         "伍" , "陆" , "柒" , "捌" , "玖"};
  5.     private String[] unitArr = {"十" , "百" , "千"};
  6.     /**
  7.      * 把一个浮点数分解成整数部分和小数部分字符串
  8.      * @param num 需要被分解的浮点数
  9.      * @return 分解出来的整数部分和小数部分。第一个数组元素是整数部分,第二个数组元素是小数部分。
  10.      */
  11.     private String[] divide(double num)
  12.     {
  13.         //将一个浮点数强制类型转换为long,即得到它的整数部分
  14.         long zheng =  (long)num;
  15.         //浮点数减去整数部分,得到小数部分,小数部分乘以100后再取整得到2位小数
  16.         long xiao = Math.round((num - zheng) * 100);
  17.         //下面用了2种方法把整数转换为字符串
  18.         return new String[]{zheng + "", String.valueOf(xiao)};      
  19.     }
  20.     /**
  21.      * 把一个四位的数字字符串变成汉字字符串
  22.      * @param numStr 需要被转换的四位的数字字符串
  23.      * @return 四位的数字字符串被转换成的汉字字符串。
  24.      */
  25.     private String toHanStr(String numStr)
  26.     {
  27.         String result = "";
  28.         int numLen = numStr.length();
  29.         //依次遍历数字字符串的每一位数字
  30.         for (int i = 0 ; i < numLen ; i++ )
  31.         {
  32.             //把char型数字转换成的int型数字,因为它们的ASCII码值恰好相差48
  33.             //因此把char型数字减去48得到int型数字,例如'4'被转换成4。
  34.             int num = numStr.charAt(i) - 48;
  35.             //如果不是最后一位数字,而且数字不是零,则需要添加单位(千、百、十)
  36.             if ( i != numLen - 1 && num != 0)
  37.             {
  38.                 result += hanArr[num] + unitArr[numLen - 2 - i];
  39.             }
  40.             //否则不要添加单位
  41.             else
  42.             {
  43.                 result += hanArr[num];
  44.             }
  45.         }
  46.         return result;
  47.     }
  48.     public static void main(String[] args) 
  49.     {        
  50.         Num2Rmb nr = new Num2Rmb();
  51.         //测试把一个浮点数分解成整数部分和小数部分
  52.         System.out.println(Arrays.toString(nr.divide(236711125.123)));
  53.         //测试把一个四位的数字字符串变成汉字字符串
  54.         System.out.println(nr.toHanStr("609"));
  55.     }
  56. }

 

利用树莓派制作智能音箱 阅读详情

相关推荐

【go-libp2p学习笔记】使用go-libp2p搭建中转服务器(circuit relay server)

libp2p算是一个蛮新的库,提供了非常强大的p2p节点发现/连接/通信能力。IPFS的基石。 中文网上的**技术教程**比较少,所以抛砖引玉开一点坑来体验一下!

Cake_C的博客 6489

疯狂Java讲义——第4章 流程控制与数组

目录​编辑一.流程控制1.顺序结构2.分支结构(1).if条件语句(2).switch语句 2.分支结构 (1).if条件语句 switch语句由一个控制表达式和多个case标签组成 示例: 使用 switch 分支的几点注意事项: 表达式类型只能是 byte、short、int、char,JDK5 开始支持枚举,JDK7 开始支持 String、不支持 double、float、long case 给出的值不允许重复,且只能是字面量,不能是变量 正常使用 switch

qq_52409179的博客 1954

SIwave学习记录:电热耦合仿真

SIwave电热耦合仿真

m0_68174736的博客 2335

疯狂Java讲义第五版读书笔记

疯狂Java讲义第五版读书笔记 文章目录疯狂Java讲义第五版读书笔记第一章:Java语言概述与开发环境1.1、Java程序运行机制1.2、Java第一个程序1.3、Java命名规范1.3.1、包命名1.3.2、类命名、接口命名、抽象命名1.3.3、方法命名、变量命名第二章:面向对象2.1、程序设计的三种结构2.1.1、顺序结构2.1.2、选择结构2.1.3、循环结构2.2、面向对象的设计简介2.2.1、简要描述:2.2.2、 类的简单定义2.2.3、面向对象与面向过程2.2.4、面向对象三大基本特征2.

weixin_50527711的博客 1889

《Linux运维总结:Ubuntu22.04忘记root密码解决方案》

《Linux运维总结:Ubuntu22.04忘记root密码解决方案》

东城绝神 4459

Uncaught ReferenceError: process is not defined

这个错误 Uncaught ReferenceError: process is not defined 通常出现在浏览器环境中,因为 process 是 Node.js 环境的内置对象,并不是浏览器原生支持的。因此,浏览器无法识别 process,导致该错误。在App.vue中加上以下代码就能够有效解决。

猿小白的博客 1740

疯狂Java讲义-流程控制与数组

流程控制与数组 流程控制 顺序结构 分支结构 if条件语句 switch分支语句 循环结构 while循环语句 do while循环语句 for循环 控制循环结构 break continue return 数组 在一个数组中,数组元素的类型时唯一的 一旦数组的初始化完成,数组在内存中所占的空间将被固定下来 定义数组 type[] arrayName; type arrayName[...

u011714517的博客 255

【OpenCV】图像的像素直方图 图像特征点 cv::FAST cv::ORB ORB_SLAM2::ORB

文章目录图像直方图代码实现cv::FAST和cv::ORB 检测图像特征点cv::FAST和cv::ORB 检测图像特征点代码实现ORB_SLAM2::ORB和自己实现ORB图像特征点检测效果对比ORB_SLAM2::ORB和自己实现ORB图像特征点检测效果对比代码实现 图像直方图代码实现 图像是由不同数值(颜色)的像素构成的,像素值在图像中的分布情况是图像的重要属性,可以用直方图修改图像的外观,标识图像的内容,检测图像中特定的物体或纹理。 单通道灰度图像中每个像素都有一个 0(黑色)-255(白色)的整

小秋 AI SLAM 入门实战教程 2509

疯狂Java讲义

疯狂Java讲义 本文知识点总结均来自与李刚老师的《疯狂Java讲义第5版》,文中的标题对应书中的标题,因此大家可以对照标题查看书中更详细的内容。有些比较容易理解的章节会省略。 文章目录3 数据类型和运算符3.3 数据类型分类3.4基本数据类型3.4.1 整型3.4.2 字符型3.4.3 浮点型3.4.4 数值中使用下划线分隔3.4.5 布尔型3.4.6 使用var定义变量3.5 基本类型的类型转...

qq_34592561的博客 984

Codex、Claude Code、Opus、Trae、Cursor:一文讲懂 2026 AI 编程工具格局

2026年AI编程工具将形成三层体系:模型层(Opus/Codex)负责思考,执行层(Claude Code/Codex Agent)负责自动开发任务,工具层(Cursor/Trae)提供AI集成的开发环境。关键区别在于Agent路线强调AI主导自动化开发,而IDE路线保持人类主导。未来竞争力取决于能否将AI整合为生产力系统,掌握模型推理、Agent任务编排和AI IDE协同三大能力。核心转变是从"写代码"升级为"指挥AI写代码",高级玩家通过组合不同层级工具构建自动

m0_51738372的博客 2688

基于LLM【M3】驱动的自动化攻击智能体AK(受控使用)

摘要:文章实测了基于大模型的目标驱动型云攻击智能体,展示攻击者仅需输入业务目标(如"窃取BigQuery数据")即可自动完成SSRF、令牌解析、数据导出等全链条攻击。研究发现:(1)攻击编排范式已从固定脚本升级为自适应路径;(2)传统基于IOC的防御与新型攻击存在结构性错位;(3)防御需转向元数据加固、跨服务行为序列检测和AI驱动的紫队演练。实验在授权靶场使用合成数据,验证了攻击智能体"监督者模型+专业执行组"的协作模式,强调防御体系需从单点检测升级为攻击链理解能力。

云上笛暮 306

Java基础02—数据类型、运算符、流程控制和数组

本文是学习Java时所记录的学习笔记,本节包含了Java数据类型、基本运算、流程控制和数组的使用,提取了部分我觉得是重点的内容。欢迎留言、私信交流~~

spark2010的博客 403

S7-200SMART 的运动控制(一)向导配置具体步骤(图文)

S7-200SMART 的运动控制(一)向导配置具体步骤(图文)

Robot_PLC_HMI_Automation 3849

Java疯狂讲义

目录 第一章:java语言概述和开发环境: 第二章:理解面对对象: 第三章:数据类型和运算符: 第四章:流程控制和数组: 第五章:面对对象: 第八章:集合框架: 第十章:异常处理: 第十六章:多线程: 第一章:java语言概述和开发环境: JVM:Java虚拟机,负责执行指令,管理数据,内存和寄存器。 JDK:java开发安装所需要的。 JRE:包含JVM。 垃圾回...

若叶知秋的博客 4476

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

疯狂JAVA讲义

第一章:JAVA语言概述

HYCANYE 2745

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

《疯狂java讲义》读后感

《疯狂java讲义·第三版》,全书共851页,18章。 目录如下: 第1章 Java语言概述与开发环境 第2章 理解面向对象 第3章 数据类型和运算符 第4章 流程控制与数组 第5章 面向对象(上) 第6章 面向对象(下) 第7章 Java基础类库 第8章 Java集合 第9章 泛型 第10章 异常处理 第11章 AWT编程 第12章 Swing编程 第13章 MySQL数据库与JDBC...

aihuanshang9340的博客 376

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

《疯狂Java讲义》读书笔记——第4章 流程控制与数组

第四章 流程控制与数组 本章重点 顺序结构 if分支语句 switch分支语句 while循环 do while循环 for循环 嵌套循环 控制循环结构 理解数组 数组的定义和初始化 使用数组元素 数组作为引用类型的运行机制 多维数组的实质 操作数组的工具类 数组的实际应用场景 ...

大圣何来的博客 400

《疯狂java讲义》第4章 流程控制与数组

第4章 流程控制与数组 4.1 循序结构 循序结构:程序从上到下逐行执行,中间没有任何判断和跳转。 4.2 分支结构 if语句和switch语句 4.2.1 if条件语句 if ( xx ){ xxx; } if ( xx ){ xxx; }else{ xx; } if ( xx ){ xxx; }else if ( xxx ){ xx; } 花括号括起来的多行代码称为代码块,也称为条件执行体。 代码块,以分号结束的一行语句,空语句,都可以为条件执行体。 else的含义是“否则”,el

weixin_43806049的博客 215

[笔记] 疯狂JAVA讲义(第3版)第4章 流程控制与数组

文章目录第4章 流程控制与数组4.1 顺序结构4.2 分支结构4.2.1 if条件语句4.2.2 Java 7 增强后的switch语句4.3 循环结构4.3.1 while循环4.3.2 do while4.3.3 for循环4.3.4 循环嵌套4.4 控制循环结构4.4.1 break结束循环4.4.2 使用continue忽略本次循环剩下语句4.4.3 使用return结束方法4.5 数组类...

一只大鸽子的博客 519

疯狂JAVA讲义流程控制与数组(第四章)学习笔记

第四章 流程控制与数组 一:简单零碎的知识汇总 1)Switch语句后面的控制表达式的数据类型只能是byte,short,char,int四种整数类型,枚举类型和java.lang.String类型,不可 以是boolean类型,也不可以是StringBuffer或StringBuilder这两种字符串类型。 2)Switch语句的每个case标签后的代码块都有一个brea...

ych12345xx的博客 246

疯狂讲义第四章 流程控制和数组

1. 三种程序的控制结构 if else, switch, for ,while ,do-while, foreach. 理解foreach的实现实质,以及使用注意事项。 2. 循环控制结构 break, continue,return 外加保留的goto. 外层循环的

peterli_xue的专栏 614

疯狂Java讲义中的知识点03

疯狂java讲义03 (出处:根据李刚老师《疯狂java讲义》视频中的知识点于此记录下来) 循环嵌套 循环里面再次放置循环,此时里层循环相当于外层循环的一条语句。 【例】 public static void main(String[] args) { for(int i=0;i<10;i++){ int j = 0; while (j<10) { System.out.p...

Java 领域技术分享 228

java疯狂讲义第三次阅读----第四章流程控制与数组

本章的面试考点:数组,switch支持6种类型的数据 因为数组是一种线性数据结构的实现嘛,是吧,涉及到存储,涉及到内存,啊涉及到数据结构also,数组在内存中的运行机制 第四章需要get到的点 时刻get到内存 java中不允许直接访问对象,所有的对象都存储在内存区的堆内存中,因此对于对象都是需要引用变量来访问的, 引用数据类型包括:类+数组 方法的栈内存,所有的局部变量被...

Mar.三月 167

java疯狂讲义 第四章 流程控制与数组

一、流程控制 package Capter4_流程控制与数组; public class Process_structure { public static void main(String[] args){ System.out.println("------------------分支结构if、switch--------------"); ...

果子 277

疯狂Java讲义笔记整理

目录 一、基础类型 二、流程控制与数组 三、面向对象 四、基础类库 五、集合 六、泛型 七、异常 八、数据库 九、注释 十、输入输出 十一、网络 十二、类加载机制 十三、多线程 面向对象三大特性:封装、继承、多态 一、基础类型 char, int, short, long, byte, float, double, boolean 基本类型的类型转换(自动与强制、补码,反码与原码) 逻辑运算符(不短路与&,和&&; | 和|| 两个的只执行最少比较,

wui66655的博客 891

疯狂讲义java 李刚_推荐:疯狂java讲义--李刚著作(4)

>Java资料百度网盘链接:https://pan.baidu.com/s/1IzjeTfM2SE5Ts9kRvS3huw提取码:7wg9>今日内容:>1.流程控制>2.数组的使用#### 流程控制以最简单的实例演示熟知的流程控制```javapackage com.stx.practice;public class AddOperation {/*三种方式求1到一百的和*...

weixin_28872105的博客 530
上一篇: 疯狂JAVA讲义---第三章(下):运算符
下一篇: 疯狂JAVA讲义---第四章(下):数组
terryzero
博客等级 码龄19年 700粉丝 232原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值