Java核心语法:作用域、循环与大数值处理

一、块作用域

java 复制代码
{

}

即使在main方法执行期间,{}外访问不到{}内

二、条件语句

1.if条件语句

java 复制代码
If(判断条件){

语句

}

2.if else语句

java 复制代码
If(判断条件){

语句

}else if(判断条件){

语句

}else if()......

走if之后就不会走同样符合条件的else if了;

同理,走了if之后依旧会走符合条件的后边的if。

3.swich case语句

java 复制代码
Switch(变量char byte short int 枚举){

Case 1:

语句;

Break;

Case 2:

语句;

Break;

......

Default:

上边的条件都没有出现就走Default

Break;

}

Switch击穿:不写break会使得整个判断都走一遍。

三、循环

1.while循环

java 复制代码
while(判断条件){

语句

}

只要判断条件为true就会一直执行

2.do while循环

java 复制代码
do{

语句;

}While(判断条件);

先执行do里的内容,再while判断,true则继续执行do,否则停止循环。

3. for循环

java 复制代码
for(初始条件;循环条件;循环体执行完之后要执行的内容){

语句;

}

增强for循环

java 复制代码
for(对象类型 容器的每个对象:要遍历容器){

语句;

}

对于不清楚长度的数组,可以去用foreach循环来防止越界

4.结束循环

Break:结束所在整个循环;

Continue:结束本次循环后半段内容,意思是continue之后的代码就不执行了;

可以搭配标签使用

比如

java 复制代码
aa:for(){

    语句;

    For(){

    语句;

    Break/Continue aa;

    }

}

直接结束aa的本次循环或者整个循环。

四、大数值

BigInteger 整数 和 BigDecimal 小数

两种声明方式(都适用):

BigInteger num=BigInteger.valueOf(1000);------不能超过long范围

BigInteger num1=new BigInteger("100000000");------可以超过long范围

大数值里有许多运算方法,只能调用这些方法去做运算。

①BigInteger add(BigInteger other)

②BigInteger subStract(BigInteger other)

③BigInteger multiply(BigInteger other)

④BigInteger divide(BigInteger other)

⑤BigInteger mode(BigInteger other)------返回这个大整数和另一个大整数other的和、差、积、商以及余数

⑥int compareTo(BigInteger other)------如果这个大整数与另一个大整数other相等,返回0;如果这个大整数

⑦static BigInteger valueOf(long x)------返回等于x的大整数

⑧BigDecimal add(BigDecimal other)

⑨BigDecimal subStract(BigDecimal other)

⑩BigDecimal multiply(BigDecimal other)

⑪BigDecimal divide(BigDecimal other)------返回这个大整数和另一个大整数other的和、差、积、商

⑫int compareTo(BigDecimal other)

⑬static BigDeciaml valueOf(long x)

⑭static BigDecimal valueOf(long x,int scale)------返回为x/10n的一个大实数

五、数组

1.声明方式

java 复制代码
数据类型[] 数组名称 = {元素};


数据类型[] 数组名称=new int[大小];


数据类型[] 数组名称=new int[] {元素};

不赋元素就会填充默认值,比如int 0,boolean false等等

2.匿名数组

匿名数组只作临时使用,后期也不需要使用,所以不用取名

比如

3.数组拷贝

·浅拷贝 :把变量指向的地址变成被拷贝的指向地址,两个变量指向同一块空间。

·深拷贝 :再去创建一个一模一样的容器然后把值搬过来,两个变量指两个不同的空间。

对于数组有一个copyOf(要拷贝数组,数组长度)方法,可以直接调用该方法来进行拷贝,底层是深拷贝。

比如 int\[\] brr=Arrays.copyOf(arr,arr.length);

如果声明的长度不合适,会补0。

4.数组排序

Java提供了Arrays.sort方法(底层是快速排序)进行排序,直接调用该方法就可以。

Arrays也重写了equals方法来比较两个数组是否相同,和String重写的同理,先判断地址是否相同,相同直接返回true,不同就判断内容是否相同。

5.多维数组

Arrays.deepToString(数组)进行遍历拼接数组

相关推荐
武子康8 小时前
MultiNet7 每轮都 clean,ESP32-P4 内存为什么还在掉?
人工智能·后端·agent
缓慢更新8 小时前
AI 辅助生成单测:从接口定义到用例的流水线
java·服务器·前端·网络·数据库·人工智能
超级架构师8 小时前
PRAXO-CORE 2.5.0:用 conformance 和显式边界构建 Go Agent 框架
开发语言·人工智能·后端·golang·ai编程·智能体框架·praxo-core
陈随易9 小时前
AI 运维服务器,安全又可靠的方法
前端·后端·程序员
叼烟扛炮9 小时前
Linux 学习笔记(四十三):网络编程进阶——自定义协议解决 TCP 粘包与守护进程
linux·开发语言·网络·笔记·tcp/ip
LMT流氓兔10 小时前
第五单元——第十六课:给书店助手加上网页界面
java·开发语言·jvm·人工智能·oracle·langchain·1024程序员节
专注仿真10 小时前
梯度提升类(XFBoost)算法详解与代码实例
开发语言·人工智能·python·算法·大模型训练·控制算法
外收内放10 小时前
Python基础语法练习题(75)
开发语言·python·学习
IT_陈寒10 小时前
JavaScript的this坑人实录,这次我真的记下来了
前端·人工智能·后端
starzy199011 小时前
Scala循环与判断:一切皆表达式的控制流
开发语言·人工智能·scala