日升时奋斗,日落时自省
目录
1.6移位运算:<< >> >>>(无符号右移)(与C语言不同处)
一、运算符
1.java的运算符
1.1算术运算符:+ - * / %
运算中注意运算时需要注意类型是一致,如果不一致,在小字节与大字节大字节相加时赋值给大字节,java会隐式类型转换不需要手动强转,当运算结果赋值个小字节时,就需要将大字节手动进行类型转换,在上一个博客有提及
(1)在java中运算符号(/)中除数不能为零
使用例:
运行结果:
(2)运算符号(%)在求余时,对整数取模,对于double也会取模
(3)两侧操作数类型不一致时,向类型大的提升
使用例:
运行结果:
1.2增量运算符:+= -= *= %=
增量运算符基本和C语言都是相近的,可以回顾一下C语言,在java中这增量运算符能减少一些麻烦,相比原有的a=a+b,直接替换成a+=b
1.3自增/自运算符:++ --
提及到++,--,就会有前置++,后置++,前置--,后置--,相比C语言中的++,--;前置++过程,java与C语言是相同的都是先++后使用其值,但是后置++就与C语言有些区别,C语言是使用其值立刻进行++,而java不是
使用例:
运行结果:
1.4逻辑运算符:&& || !
注意:运算结果都是boolean(布尔类型)
逻辑运算符在C语言中都是我们的老相识了,就不在详细叙述&&(逻辑与)、||(逻辑或)、!(逻辑非)
&&和||在java中遵循短路求值:
使用例:
运行结果:
上面的运算符中提及到了除数不能为0所以,这里在这里是没有进行报错的,说明什么呢,截断式的判断
使用例:
运行结果:
对的,又出现上面提及过的除数不能为0,到这里就明白里面有什么不同了吧,简单点说如果表达式1不成立也就没有表达式2什么事情了
1.5位运算符:& | ~(取反)
基本是C语言的东西了,二进制的&(与)、二进制的|(或)、二进制的!(按位取反),那还是举个简单的例子来回顾一下
00001010&00001100=00001000 解释
00001010
00001100
00001000 相同的就取1下来,不相同的就取0下来
00001010|00001100=00001110 解释
00001010
00001100
00001110 只要有1就取1下来,两个都没有1的就是取0下来
!00001010=11110101 解释
就是所有0和1都反过来,0变1,1变0
1.6移位运算:<< >> >>>(无符号右移)(与C语言不同处)
<< : 二进制向左移动 移动几位就是 乘上2的几次方
>> : 二进制向右移动 移动几位就是 乘上2的几次方
>>> : 其实也就是向右的意思
1.7条件运算符:a>b? a : b(三目运算符)
条件?表达式1:表达式2
前面的判断式对的哪就表达式1成立,反之就是表达式2成立
优先级:可以做个提醒,尽量带上运算时尽量带上括号,括号也不费个啥对吧
二、程序逻辑控制
1.分支结构的格式(java) if else
无else
有else
多重判断
在使用if else期间切忌切忌要带上括号,可读性提高的同时,不容易出现错误
2.switch在java中的使用
switch也是我在C语言中常见的了,这里提及的是switch使用的类型,不能使用的类型
switch()中能放基本类型 : byte 、char 、int 、short
引用类型:String常量字符串 、枚举类型
不能放long 、float 、double 、boolean
3.循环结构
提到循环,联想到是C语言的for循环,do while(布尔类型),while()循环,循环中会涉及到continue,break在java中使用方法是大致相同的;
for循环在idea中只需输出fori即可实现
while(布尔类型){
}
这里这么能放输入呢
使用例:
使用这些简单的输入需要包
在使用的循环范畴中,每个都自己独到的用处,这里for循环和while(布尔类型)循环基本是常用类型
do while()使用循环时,都会执行第一次
break:结束当前循环
continue:结束本次循环
这些循环的简单使用就不在给出使用例了