Java运算符及常见考题

运算符

1.1算术运算符,

		生活常用:加号 +  ,减号  -  ,乘号  x ,除号  ÷
		java开发中使用的算术运算符:
				加 +		减 - 		乘  *		除 / 		取余%
		注意 :
				先乘除,后加减
				从左向右运行
				除数不能为0
				先算小括号内容(小括号里面的内容对外面来讲是一个整体
		且是一个【常量】)
		
		=(赋值号)不是等于 是赋值号,将右侧数据赋值给左侧的【变量】

		变量只有在赋值后才可修改内容,未赋值无法修改
		【取余】
		取余数若小于被取余数则被当为余数;
		如两个整数取余结果有小数,则小数点及后面都被舍弃
		例:
		100 % 200 ... ...0;

1.2 算术赋值号():

		加等于 +=		减等于 -=		乘等于 *=			除等于  /=  		取余等于 %= 
		例:
		下面展示一些 `内联代码片`。
		例
		int num1 = 10;
		int num2 = 20;
		num1 += num2;
		//可理解为:num1 = num1 + num2;
		
		该写法更为轻便

1.3 关系运算符:

		生活中用的关系运算符:> < ≥ ≤ ≠ =
		java开发中所用的:
				>		大于
				<		小于
				>=	大于等于
				<=	小于等于
				==	等于判断
				!=		不等于
		
		注意:
				关系运算符结果为布尔类型数据,结果为true或false

				关系运算符一般用于条件判断或过滤数据...
				
		代码演示:
	class Test {
		public static void main(String[] args) {
			boolean ret = true;
			ret = 10 < 5;
			//false;
			ret = 5 <= 5;
			//true
			ret = 3 != 3;
			//false;
		}
	}

1.4 自增/自减【考点】

		A.自增,自减操作符只能操作【变量】,不可操作常量

	    B.建议开发中尽量少用或者标准化使用(单独成行)

		语法
			 	++ 自增运算符 操作的变量自增1 等价于 += 1
				-- 自减运算符 操作的变量自减1 等价于 -= 1 
				
		【难点】
				前后关系自增自减运算符在 变量之前:首先执行自增
				自减操作,再来完成当前行代码 的运行 变量之后:首
				先执行当前行代码,再来执行自增自减操作
				
		 尽量使用 += 1 或者 -= 1替换自增自减运算符。阅读性 更好,
		 		并且在Swift语言中 已经取消自增自减运算符,
		 		使用 += 1 和 -= 1代替,为了避 免没有必要的歧义性
		 		
		代码演示:
	class Test2 {
		public static void main(String[] args) {
			int num1 = 10;
			System.out.println(num1++);
			/* 这里打印出num1的值应是10;但是程序不会直接
			结束,在打印后num1的值会自增变化为11,然后继续
			向后执行
			*/
			//常见考题
			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;
		     */
		     int num = 5;
		     ++(num++);
		     // num = ?;
		     /*会报错,在小括号内为一个整体,对外的数据 时num++
		     的结果,这是一个常量
		     */
		}
	}
		注意:自增自减运算符,只能操作变量,不可以操作常量。

1.6 逻辑运算符

		与 (&&):
				如你和好兄弟一起去钓鱼,到河边鱼竿都展开了结果
		没有鱼钩... ... 鱼竿鱼钩缺一不可
		【同真为真】一假【即】假 
			
		或(||)
				一真【即】真,全假则假

		取反(!)
				改变结果
		代码演示:
	class Test3 {
		public static void main(String[] args) {
			boolean ret = false;
			int num = 10;
			ret = 5 > 3 && 10 > 8;
			System.out.println("ret : " + ret);
			//true; 两边结果都为true,结果为true
			ret = 5 < 3 || 10 > 8; 
			System.out.println("ret : " + ret);
			/*true; 5小于三不成立;继续向后运行10大于8
			正确 返回结果为true,
			*/
			
			ret = num > 10 && ++num > 1;
			/*当与符号左边的运算符结果为false时不会继续执行
			后面代码,直接返回false,num并不会自增。*/
			System.out.println("ret : " + ret); 
			//ret = false; 
			System.out.println("num : " + num);
			//num = 10;
			
			/*
			逻辑与的情况下: 同真为真,有假【即】假
		    当出现一个条件为false之后,整个逻辑与表达式的
		    结果为false,从false之后的其他所有条件都不会
		    执行。 计算机的节约性能问题!!!
			*/
			
			/*
			逻辑或短路原则 有【真】即真,同假为假 只要发现
			一个条件为真,整个表达式结果已经确定为 真。 
			从true条件开始其他条件不需要执行
			 */
			ret = num > 5 || ++num > 20;
			System.out.println("ret : " + ret);
			//true ,原理同上
			System.out.println("num : " + num);
			//10
		}
	}

你可能感兴趣的:(Java运算符及常见考题)