1. 程式人生 > >【Java入門】運算子和表示式

【Java入門】運算子和表示式

package com.itheima_01;

*
 * 運算子:就是用於對常量和變數進行操作的符號
 * 表示式:用於運算子連結起來的符合Java語法的式子,不同的運算子連線的表示式是不同型別的表示式
 * 		舉例:a,b
 * 			 a + b
 * 運算子分類:
 * 		算術運算子:
 * 				 +,-,*,/,%,++,--
 * 				 a.字元參與加法運算:字元在計算機中儲存的資料值來參與運算
 * 					 'A' 65  
		 			 'a' 97  
		 			 '0' 48
 * 				 b.字串參與加法運算是字元的拼接
 * 				 c.++ -- 自增自減
 * 					單獨使用a++,++a結果一樣
 * 					++在後,先操作變數再++
 * 					++在前,先變數++再操作
 * 					
 * 		賦值運算子:
 * 					基本的賦值運算子:=
 * 					擴充套件的賦值運算子:+=,-=,*=,...
 * 		關係運算符:
 * 				==,!=,>,>=,<,<=
 * 				關係運算符的結果是boolean型別
 * 		邏輯運算子:
 * 				&: 有False則False
 * 				|: 有True則True
 * 				^: 相同則False,不同則True
 * 				!: True則False,False則True
 * 				注:&&,|| 同&,|; 但&&,||更高效,滿足條件即不進行下一步計算
 * 				
 * 		三元運算子:
 * 				關係表示式?表示式1:表示式2
 * 				執行流程:計算關係表示式True或者False
 * 						 if True,表示式1;
 * 						 if False,表示式2;
 * 						
 * 
 *
public class OperatorDemo {
	public static void main(String[] args) {
		// 定義變數
		int a = 3;
		int b = 4;
		System.out.println("算術運算子a=3,b=4");
		System.out.println(a + b);
		System.out.println(a - b);
		System.out.println(a * b);
		System.out.println(a / b);
		// 整數相除只能得到整數,要想得到小數,就必須浮點數參與運算
		System.out.println("浮點型運算3.0/4="+3.0 / 4);

		// 字元參與加法運算:字元在計算機中儲存的資料值來參與運算
		char c = 'A';
		System.out.println("字元參與加法運算");
		System.out.println(a + c);
		// 字串參與加法運算是字元的拼接
		System.out.println("hello" + c);
		System.out.println("hello" + a + b);
		// c+a是int型別做了加法
		System.out.println(c + a + "hello");

		
		System.out.println("a:" + a);
		// ++
		a++;
		++a;
		System.out.println("a:" + a);
		
		// 參與其他操作
		// int d=a;
		int d = a++;
		// int d = ++a;
		System.out.println("字元參與其他++計算");
		System.out.println("a:" + a);
		System.out.println("d:" + d);

		// +=的操作
		// 拿+=的左右邊資料做+,然後賦值給左邊
		a += 20;
		System.out.println("a:" + a);
		

		// 注意:擴充套件的賦值運算子,隱含了強制型別轉換
		// 拿+=的左(short)右(int)邊資料做+,然後賦值給左邊(short)
		// a+=10 相當於:a = (a的資料型別)(a + 10)
		short s = 1;
		s += 1;
		System.out.println("擴充套件的賦值運算子");
		System.out.println("s:" + s);		

		// 關係運算符定義變數
		int a1 = 10;
		int b1 = 20;
		int c1 = 10;
		// ==
		System.out.println("關係運算符定義變數==");
		System.out.println(a1 == b1);
		System.out.println(a1 == c1);

		// !=
		System.out.println("關係運算符定義變數!=");
		System.out.println(a1 != b1);
		System.out.println(a1 != c1);

		// ...>,<,<=,>=自己測試
		// 注意事項:
		System.out.println("注意事項:關係運算符定義變數=,==");
		System.out.println(a1 == b1);
		System.out.println(a1 = b1);// 把b1值賦值給a1,輸出a1

		
		// 邏輯運算子&  有False則False
		System.out.println("邏輯運算子&  有False則False");
		System.out.println((a > b) & (a > c));
		System.out.println((a < b) & (a > c));
		System.out.println((a > b) & (a < c));
		System.out.println((a < b) & (a < c));

		// 邏輯運算子 |  有True則True
		System.out.println("邏輯運算子 |  有True則True");
		System.out.println((a > b) | (a > c));
		System.out.println((a < b) | (a > c));
		System.out.println((a > b) | (a < c));
		System.out.println((a < b) | (a < c));		

		// 邏輯運算子 ^  相同則False,不同則True
		System.out.println("邏輯運算子 ^  相同則False,不同則True");
		System.out.println((a > b)^ (a > c));
		System.out.println((a < b)^ (a > c));
		System.out.println((a > b)^ (a < c));
		System.out.println((a < b)^ (a < c));		

		// 邏輯運算子!  True則False,False則True
		System.out.println("邏輯運算子!  True則False,False則True");
		System.out.println( ! (a > c));
		System.out.println( ! (a > c));
		System.out.println( ! (a < c));
		System.out.println( ! (a < c));
		
		
		//三元表示式
		System.out.println("三元表示式");
		int i = (a>b)?a:b;
		System.out.println("i:"+i);
		
		//定義兩個變數
		int a2=10;
		int b2=20;
		int c2=15;
		//方法2:boolean flag = (a == b)?true:false;
		boolean flag = (a2==b2);
		System.out.println("比較兩個整數是否相等a2=10,b2=20");
		System.out.println("flag:"+flag);
		
		//先獲取兩個資料的最大值,再與第三個資料比較
		int temp = (a2>b2)?a2:b2;
		int max = (temp>c2)?temp:c2;
		System.out.println("比較三個整數最大值");
		System.out.println("max:"+max);
	};

}