一、运算符
%:取模/余,公式是:a%b=a-a/b*b,注意这里的运算都是以Java的运算逻辑进行
++:
int n = 1;
n = n++; //输出n结果是1
n = ++n; //输出n结果是2
关系、逻辑运算符生成的结果是Boolean类型
逻辑运算符
&&:短路与,只要前面那个东西为false,就不再往后判断,直接输出false。
&:逻辑与,任何时候,对前面后面都要全部判断【麻烦,一般不用】
||:短路或,只要前面是true,直接输出true
|:同上【麻烦】
复合赋值运算符,eg.+=;-=...:会默认进行强制类型转换
byte b = 2;
b = b + 1; //错误,因为1是int型,所以计算结果也是int,不能塞进byte当中
b += 1; //正确,实际上这条语句等同于: b = (byte) (b + 1) ;
b ++; //正确,底层逻辑也是强转
三元运算符:
满足条件吗?满足执行这一条:不满足执行这一条;
二、进制
二进制:0b / 0B开头
八进制:0开头
十六进制:0X / 0x开头,其中的a~f不区分大小写
三、原码、反码、补码(易错点)
位运算的基本思路:
1. 找原码,推补码(int占四个字节,即4×8位)(计算机都是按照补码运算)(正数三码合一)
2. 进行位运算
3. 得到补码,返回到原码
注意:反码和按位取反不一样,前者符号位不变,后者都变
四、if-else
格式:
//第一种
if(……){
执行语句
}else{
执行语句2
}
//第二种
if(……){
执行语句
}else if(……){
执行语句2
}else{
执行语句3
}
五、switch
格式:
switch(……){
case ...:
执行语句1;
break;
case ...:
执行语句2;
break;
case ...:
执行语句3;
break;
case ...:
执行语句4;
break;
default:
执行语句5;
}
tips:
1. switch(表达式)中,表达式的返回值必须是: byte, short, int, char, enum(枚举), String
2. case后面放的必须是【能和表达式比较】的【常量】
3. 若没有break,则跳过下一条case判断,直接执行语句(形象理解为“穿透”)
六、for循环
和C相同。
for(int n = 1; n < 10; n++){
……
}
//-------------------------------
int n = 1;
for(; n < 10; ){
……
n++;
}
七、while循环
while(n < 10){
……
n++;
}
八、do-while
do{
……
i++;
}while(i < 100);
while是先判断再执行,do-while先执行再判断,也就是一定会执行一次。
九、break:跳转控制语句
循环次数未知时,很有用。
例如:随机生成1-100的数,直到得到37.
{
……
break;
……
}
break还有个细节叫标签,不过一般不用它。
十、
比较String内容时候,使用equals方法:
if("姜鱼".equals(name)){
……
}
十一、continue
结束本次循环,执行下一次循环。用法大致类似break。
一些感悟or注意事项:
1. 写循环时,对于一些每次都要清零重新开始的变量(例如sum),最好在循环内部定义它,而不是上来就定义,这样可以少写一条清零语句。
2.
这道作业题,切记求和时候分子要写成1.0,否则1是int,i也是int,它们的除法结果也只会保留整数(0),得不到精确值!!!