A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

Evan_Fung

初级黑马

  • 黑马币:9

  • 帖子:5

  • 精华:0

© Evan_Fung 初级黑马   /  2019-8-21 16:12  /  882 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

技术贴
运算符&表达式
       运算符其实就是一些符号(eg:+ - * /
表达式
       用运算符连接起来的一些式子,成为表达式。如果用算术运算符连接起来,就是算术表达式
1. 算术运算符
       +- * / %
       整数相除结果只能是整数
       %取余,结果是余数
       字符相+
       先把自己转换成int值,然后再运算,转换时的原则:按照其在计算机底层的存储值进行转换
       'A'   65
       'a'    97
       '0'    48
       自动类型提升:
       基本数据类型(boolean除外)进行算术运算时,会有自动类型提升:
       a.byteshortchar参与运算时,会自动转换成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(表达式){
              case1:
                     语句1;
                     break
              case2:
                     语句2;
                     break
              ……
              
              default:
                     语句n+1;
                     [break;]
       }
      
       表达式结果的类型:byteshortcharint、枚举、String
      
       执行流程:
              计算表达式的值,然后从上往下和各个case后面的值进行比对,只要发现相同,就执行该case的语句,遇到breakswitch语句结束;如果所有的case都不匹配,执行default的语句。
              
       case穿透
              如果某个case内没有break,在执行该case内语句后,并不会再次判断后面case的值是否匹配;
              而是直接执行后面case中的语句,直到遇到break或者语句结束。

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马