220217

运算符

类型转换

  1. 隐式转换

    将数据类型中,取值范围小的数据给取值范围大的类型赋值,直接赋值

    //小的给大的,直接给 
        int a = 10;
        double b = a;
        System.out.println(b)//输出结果为10.0
            
    //小的数据类型和大的数据类型运算,小的会提升为大的之后,再进行运算
            int a = 10;
            double b = 12.3;
            double c = a + b;

    image-20220216214204812

    short和char是两条平行的比较链条

    特殊关注:byte short char在运算时,不管是否存在更高数据类型,都会提升为int,然后再进行运算

  2. 强制转换

    把范围大的数值赋给范围小的变量

    //目标数据类型 变量名 = (目标数据类型)值或变量
    //特别注意:强制转换存在精度损失的可能
    byte a = 3;
    byte b = 4;
    byte c = (byte)(a + b);
    ​
    //常量优化机制:Java在编译的过程中会判断常量的运行结果是否在目标数据类型范围内
            //在范围内,通过编译
            //不在范围内,编译出错
    byte d = 3 + 4;

     

运算符

  1. 运算符:对常量或变量进行操作的符号

  2. 表达式:用运算符把常量或变量连接起来,符合java语法的式子

算术运算符

/*
算数运算符:+ - * / (除) % (取余,常用于判断奇数偶数)
*/
​
//  / :整数相除,结果只能得到整数,如果想得到带小数的结果,需要加入浮点类型的运算
    System.out.println(10 / 2); //输出5
    System.out.println(10 / 3); //输出3
    System.out.println(10.0 / 3);   //输出3.333333
    System.out.println(10 / 3.0);   //输出3.333333

字符的 + 操作

  1. ASCII码表:字节到字符的一套对应关系

  2. 特殊数据

    'a' = 97;
    'A' = 65;
    '0' = 48;

    image-20220217104212762

字符串的 + 操作

  1. 字符串的 + 操作是字符串连接符,不是算术运算

  2. 在 + 操作中,如果出现了字符串,就是连接运算符,否则就是算术运算.当连续进行 + 操作,从左到右逐个执行

  3. 总结:看 + 号左右!!!但凡出现字符串,必定是字符串的拼接,且字符串可以使用 + ,跟[任意数据类型]拼接

数值拆分

/*
    涉及思想:降位思想
    个位:数值 % 10
    十位:数值 / 10 % 10
    百位:数值 / 10 / 10 % 10
    千位:数值 / 10 / 10 / 10 % 10
    ...
*/

自增自减运算符

/*
    ++ : 自增
    -- : 自减
    操作注意 : 前置时,先对变量自增(++)或自减(--),然后再那变量参与操作
              后置时,先将该变量原本的值,取出来参与操作,随后再自增(++)或自减(--)
              单独使用时,前置 后置效果相同
    参与操作:看变量,变量左边是什么就先执行什么
*/

自增,自减只能作用于变量,不能作用于常量

赋值运算符

/*
    = : 赋值
    += : 加后赋值
    -= : 减后赋值
    *= : 乘后赋值
    /= : 除后赋值
    %= : 取余后赋值
*/

扩展后的赋值运算符隐含强制类型转换

关系运算符

/*
    == : 相等
    != : 不等
    > : 大于
    >= : 大于等于
    < : 小于
    <= : 小于等于
*/

关系运算符的结果都是boolean类型

逻辑运算符

/*
	& : 与
	| : 或
	! : 非
	^ : 异或
	&& : 短路与,具有短路效果,当左侧结果为false时,不进行右侧运算
	|| : 短路或,具有短路效果,当左侧结果为true时,不进行右侧运算
*/

逻辑运算符最终结果都是boolean类型

三元运算符

/*
	格式;关系表达式 ? 语句1 : 语句2;
	
	注意事项:
	1. ?前只要能产生boolean类型的结果即可
	2. 三元表达式最终结果的数据类型由语句1和语句2中较大的类型决定
	3.三元表达式不能单独存在	
*/

流程控制

顺序结构

从上到下,从左到右,依次执行

if语句

/*
	结构1:if(关系表达式){
			语句体;
	};
	
	注意事项:1.语句体是一条语句时,大括号可省略不写(不建议)
		    2.if语句的小括号后不要加;
            
	结构2:if(关系表达式){
			语句体1;
	}else {
			语句体2
	};
	
	结构3:if(关系表达式1){
			语句体1;
	}else if(关系表达式2){
			语句体2
	}else if(关系表达式3){
			语句体3
	}
			...
	}else{
			语句体n+1
	}






*/

 

 

posted @ 2022-02-17 23:08  古月秦风  阅读(73)  评论(0)    收藏  举报