• 0415运算符和分支结构


    0415运算符和分支结构

    1.运算符

    1.1算数运算符
    开发中使用的运算符
    	+ - * /    %取余
    
    注意事项
    	1.先乘除,后加减
    	2.从左至右依次运算
    	3.小数没有取余操作
    	注意事项:
    		1.Java之中运算符顺序优先级最高的是小括号,如需调整运算顺序,直接加小括号
    		2.小括号内部相对于括号外部而言是一个整体,是一个【常量】
    		
    【代码规范】
    	“=”前后空出空格,便于阅读;
    	代码块之间空出空行,便于阅读。
    
    
    1.2赋值运算符
    //+= -= /= *= %=
    以下两者等价
    num1 += num2;
    num1 = num1+ num2;
    
    1.3关系运算符
    关系运算符有以下几种:
    > 大于 ;< 小于 ;......
    【特殊】    == 等于判断         != 不等于
    
    【注意事项】
    	1.关系运算符的运算结果是boolean类型:true false
    	2.关系运算符一般用于条件判断,数据过滤...
    
    1.4自增自减运算
    //特殊情况
    int num = 6;
    boolean ret = num > 5 && (num-- < 20 || num++ > 10);
    System.out.println(ret);//true
    
    /*
    1.首先执行num > 5,结果成立,为true
    2.执行(num-- < 20 || num++ > 10),n-- < 20成立,结果为true,断路原则后面代码不执行
    3. 【待验证】 &&  逻辑判断中,()的优先级是否存在?
    */
    
    1.4.1自增自减定义
    i++ / ++i 与 i-- / --i
    自增自减运算【只能操作变量】,不能操作【常量】
    	错误范例:
    	int num = 5;
    	++(n++);//编译报错
    【建议】
    		开发中尽量减少或者标准化使用自增自减运算符
    【语法】
    		++ 自增运算符 操作的变量自增1 等价与 += 1
    		-- 自减运算符 操作的变量自减1 等价与 -= 1
    【建议】
    		1.尽量使用 += 1 或者 -= 1 替换自增自减运算符,以减少歧义,便于阅读理解
    		2.如果非要使用自增自减,建议单独成行;
    		3.部分语言已取消自增自减操作
    
    1.4.2自增自减含义

    ​ 自增自减符号放在变量前后有不一样含义:

    样例 含义
    i++(/i--) “++”在变量后,表示变量先参与该代码行的运算,再自增(自减)
    ++i(/--i) “++”在变量前,表示变量先自增(自减),再参与该代码行的运算
    1.4.3自增自减演示
    1.4.3自增自减面试题
    //面试题1
    int num = 5;
    int ret = num++ * ++num;
    
    ret = ?
    num = ?
    /*
    请问num值经历了几次自增操作?
    	两次,num确定最后结果为7
    
    ret的结果从何而来?
    	num++ 
    		++在后,提供的数据5, num++在运行表达式中提供的数据为5
    		这里运算操作是一个乘以操作,num++需要执行完毕 num ==> 6
    	*
    	++num:
    		++在前,提供的数据6 + 1 ==> 7
        
        最终表达式的结果为
        	5 * 7 = 35 ==> ret;
    
    */
    
    //面试题2
    int num = 5;
    ++(num++);//此类操作编译器会报警,因为1:自增自减操作只能作用于变量;2.小括号内部相对于括号外部是一个常量(当然,即使此处没有括号依然会报警)
    
    num = ?;
    /*
    Demo7.java:5: 错误: 意外的类型
                    ++(num++);
                          ^
    		  需要: 变量
    		  找到:    值
    		1 个错误
    同理
    	++num++ 也是错误的
    	++num结果是一个常量
    	
    	(num)这个是常量还是变量呢
    	这个小括号是无用的!!!
    	(num)++这是对的
    */
    
    1.5逻辑运算符
    &  &&  |  || !
    && 同真为真,遇假则假
    || 同假为假,有真则真
    
    && 运算符间优先级顺序高于 ||
    
    【短路原则】
    对于 && ,当在多个条件判断过程中已经有某个条件为假,则停止判断,剩余条件不会执行
    对于 || ,当在多个条件判断过程中已经有某个条件为真,则停止判断,剩余条件不会执行
    
    开发中考虑【短路问题】可以节约计算机的性能
    
    //& 与 &&
    //&& 哪怕剩余条件中有语法错误的,编译器也会通过
    
    //&
    class logic{
    	public static void main(String[] args){
    		System.out.println( (2 > 5) & ((10/0) == 0));
    	}
    }
    
    Exception in thread "main" java.lang.ArithmeticException: / by zero
            at logic.main(logic.java:3)
        
        
     //&&
     class logic{
    	public static void main(String[] args){
    		System.out.println( (2 > 5) && ((10/0) == 0));
    	}
    }
    
    false
    
  • 相关阅读:
    自己觉得好的文章(2)
    为什么要用C运行时库的_beginthreadex代替操作系统的CreateThread来创建线程?
    GraphEdit
    吴裕雄天生自然Spring BootSpring Boot与Thymeleaf实现页面信息国际化
    吴裕雄天生自然Spring BootThymeleaf基础语法
    吴裕雄天生自然Spring BootSpring Boot处理JSON数据
    吴裕雄天生自然Spring Boot基于Thymeleaf与BootStrap的Web开发实例
    吴裕雄天生自然Spring Boot基本配置和注解
    吴裕雄天生自然Spring Boot自定义Starters
    吴裕雄天生自然Spring Boot的基本配置
  • 原文地址:https://www.cnblogs.com/raising/p/12707391.html
Copyright © 2020-2023  润新知