第3讲 运算
一 单与和双与的区别(单与一定要参与两边运算): 短路与 前假结果真返假。 短路或 前真结果真返真。 即具有短路性质 (&& ||)
二 关于位运算:
1与运算(和与不同,与运算是位运算不是逻辑运算) 与运算即逻辑乘运算。 或运算逻辑加运算 与运算可以用于截取一段数。
2异或运算 (同假异真)6^3=5 5^3=6 两次异或同一个数还是原数(可以穷举四个可能性得到证明1^0^0 1^1^1 0^0^0 0^1^1)
应用:密钥
3反码: 正数原反补三码相同 ,负数补码符号位不变其他取反 反码是补码加1 原码+补码=0 (负数是以补码存在)
4取反 相反数-1 (无论正负数都是这个) ~6
5向左运算 右移运算(补位和原数最高位一致) <<n >>n 其实就是乘以或除以2的n次方 无符号右移>>>n 同右移只是最高位总补0
6 关于两个变量值互换。 int a=3,b=5;
(1) int temp; temp=a; a=b; b=temp; (开发用)
(2)不需要第三方变量: m=m^n n=m^n m=m^n(即m=n^m的变形) (阅读性差,开发不用,面试用)
a=a+b; b=a-b; a=a-b ; => b=(a+b)-b a=(a+b)-a (这种方式有可能造成超出int范围造成强制转化)
三 三元运算 (x>y)?x:y; 是if...else...有结果下的简化形式
第4讲 结构
一 if [多用于布尔型]
if 三格式 没花括号默认只在下一行有效
if (a)
执行语句;
if (条件表达式)
else { 规范(左大括号不换行写而写在右边目的是为了一行显示更多代码行,代码少可以左大括号单独一行)
b
};
if(a); else if(b); else{c};
局部代码块 /普通代码块 {}内的代码
二 switch [多用于数值型]
switch (表达式){ //表达式是int,short,byte,char,String,
default:
语句;
case a:
语句;
break;
case b:
语句;
break;
}
switch先读case 再读defalut 一旦匹配到一个把switch内所有接下来的(包括不匹配的case)语句读完直到break语句或大括号,如上如果表达式是c 就是依次执行c ,a
三 循环
1 while(){ //语句不一定执行
}
2 do { //至少执行一次
}while()
3 for(初始化表达式1;循环条件式;循环后操作表达式2;) {
//执行顺序 初始化表达式,然后反复按“条件-循环体-循环操作表达式”表达
//一个表达式中有多少表达式可以用逗号隔开,循环条件式必须是boolean型
}
4 for和while的区别:for用于明确循环次数的,并且for结束释放内存省内存 ,而while的变量还可继续使用
5循环三要素:初始,循环次数,循环条件;
6死循环 while(true){ }; for(;;){ } ;
7外循环控制行数,内循环控制列数 上尖条件变,下尖初始变
8break 只有在循环和switch中
continue跳过本次循环并继续下次循环
return 跳出方法或跳出并返回值 (三个关键词下方不能出现一定执行不到的语句)
9for循环多的情况,前面用变量名加分号q: for(){}来命名,方面break跳出指定层的循环 |
|