技术贴 运算符&表达式 运算符其实就是一些符号(eg:+ - * /) 表达式 用运算符连接起来的一些式子,成为表达式。如果用算术运算符连接起来,就是算术表达式 1. 算术运算符 +- * / % 整数相除结果只能是整数 %取余,结果是余数 字符相+ 先把自己转换成int值,然后再运算,转换时的原则:按照其在计算机底层的存储值进行转换 'A' 65 'a' 97 '0' 48 自动类型提升: 基本数据类型(boolean除外)进行算术运算时,会有自动类型提升: a.byte、short、char参与运算时,会自动转换成int类型,然后再进行运算 b.在算术表达式中,讲数据类型转换成参与运算的所有数据中的最高级别。 (byte/short/char<int<long<float<double) 字符串相+ 其实就是字符串的拼接 从左往右依次执行,在遇到字符串之前,会找原有的规则进行运算。 如果遇到了字符串,就开始进行字符串拼接。 自增/自减运算符 ++/-- 变量增加/减少1 使用: 单独使用 在前或在后,对运算结果没有影响 参与运算 自增或自减在前,先进行自增减然后再参与其他运算 自增或自减在后,先进行其他运算,然后再进行自增减 2.赋值运算符 = inti = 10; //将10赋值给int类型的变量i i= i + 20; //将i的值加上20之后,重新赋值给变量i 复合赋值运算符 +=、-=、*=、/=、%= i+= 10; //在结果上等同于i = (i的类型)(i +10); 一般不建议使用强转,建议使用复合赋值运算符 3.关系运算符 关系表达式的结果只能是boolean类型,也就是只能是true或者false ==、>、<、>=、<=、!= 不要将==错写成了= System.out.println(i=j+k),把j的值赋值给变量i,并且输出 4. 逻辑运算符 连接了两个及以上的关系表达式 &、|、^、! &与 并且 只要有false,结果就是false,同时为true,结果才是true |或 或者 只要有true,结果就是true;同时为false,结果才是false ^a异或 男女关系 相同为false,不同为true !非 否定 !true = false,!false=true; !!true = true; 短路逻辑运算符 && 短路与 只要遇到false,后面的关系表达式便不执行 || 短路或 只要遇到true,后面的关系表达式便不执行 工作中常用的是 &&、||、! 5. 三元运算符 格式:关系表达式 ? 表达式1 : 表达式2 示例: a > b ? c : d 执行流程: 判断关系表达式的值 如果该值为true,三元表达式的值就是表达式1的值 如果该值为false,三元表达式的值就是表达式2的值 求两个数据中,较大的数值 变量类型 max = a > b ? a : b; 6. 键盘录入的三个步骤 导包 importjava.util.Scanner; 创建对象 Scanner sc = newScanner(System.in); 接收数据 int i = sc.nextInt(); 7. if语句格式1 if(关系表达式){ 语句体 } 执行流程 1.判断关系表达式的值 2.如果关系表达式的值为true,就执行语句体,然后继续执行后面的其他代码 3.如果关系表达式的值为false,就不执行语句体,接续执行后面的其他代码 8. if语句格式2 if(关系表达式){ 语句体1; }else { 语句体2; } 执行流程: 1.判断关系表达式的值 2.如果关系表达式的值是true,执行语句体1,然后继续执行后面的其他代码 3.如果关系表达式的值是false,执行语句体2,然后继续执行后面的其他代码 9. if语句格式3 if(关系表达式1){ 语句体1; }elseif(关系表达式2){ 语句体2; } …… else{ 语句体n+1; } 执行流程 1.判断关系表达式1的值,如果是true,就执行语句体1; 2.如果为false,就继续判断关系表达式2的值,如果关系表达式2的值是true,就执行语句体2; 3.…… 4.只要有一个关系表达式的值是true,就执行对应的语句体 5.如果所有的关系表达式的值都是false,就执行else里面的语句体n+1 1.switch 语句格式: switch(表达式){ case值1: 语句1; break; case值2: 语句2; break; …… default: 语句n+1; [break;] } 表达式结果的类型:byte、short、char、int、枚举、String 执行流程: 计算表达式的值,然后从上往下和各个case后面的值进行比对,只要发现相同,就执行该case的语句,遇到break,switch语句结束;如果所有的case都不匹配,执行default的语句。 case穿透 如果某个case内没有break,在执行该case内语句后,并不会再次判断后面case的值是否匹配; 而是直接执行后面case中的语句,直到遇到break或者语句结束。
|