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(数组)进行遍历拼接数组

相关推荐
newerp1 小时前
GC Pacer 调优算法:GOGC、GOMEMLIMIT 与容器 OOM 防御
后端·程序员·go
敲代码的乔帮主1 小时前
Python 3 现代类型标注入门
开发语言·python
邱杰4701 小时前
数智人事系统(二):一条命令起齐四个中间件
后端
newerp1 小时前
逃逸分析、栈分配与 sync.Pool 对象池
后端·程序员·go
upala1 小时前
【仓颉语言入门 · 第二篇 第 3 课】
后端
松就是我902981 小时前
3.7 万 Star 的「第二大脑」Khoj,为什么关掉了云服务
后端
夜之眷属1 小时前
PriorityQueue:for-each 遍历和 poll 取出,顺序一样吗?
java·服务器·数据结构·后端·算法
蒜香可达鸭1 小时前
可控视频生成三类技术路线介绍
后端