標籤:最大 AC 先後 string ++ 樣本 異或 而且 位元運算符
1 運算子1.1 運算子的常用概念
- 運算:對常量和變數進行操作的過程。
- 運算子:對常量和變數進行操作的符號。
- 運算元:參與運算的資料稱為運算元。
- 運算式:用運算子把常量和變數串連起來的符合java文法的式子稱為運算式。不同運算子串連的式子體現的是不同類型的運算式。
- 例如:int a = 3 + 4;
- 就是做了一個加法運算。
- +就是運算子,是算術運算子。
- 3、4就是參與運算的操作資料。
- 3+4整體其實就是一個算術運算式。
1.2 算術運算子
- +,加法
- -,減法
- *,乘法
- /,除法
- %,取餘
- ++,自增
- ---,自減
package com.xuweiwei;/** * 運算子 */public class Operator { public static void main(String[] args) { //定義變數 int x = 3; int y = 4; System.out.println(x+y); System.out.println(x-y); System.out.println(x*y); System.out.println(x/y);//整數相除只能得到整數 System.out.println(x%y);//取餘 /** * 如果我想要整數相除不是得到整數,只需要把運算元其中一個運算元變為浮點數即可 */ System.out.println(x*1.0/y); }}
package com.xuweiwei;/** * ++、--運算子的應用 */public class Operator2 { public static void main(String[] args) { //定義兩個變數 int x = 3; int y = 4; System.out.println("x:"+x); System.out.println("y:"+y); //單獨使用 x++; //相當於x=x+1; y++; System.out.println("x:"+x); System.out.println("y:"+y); x =3; y=4; //參與運算 int a = x++; //++在後面,先賦值,再自增 int b = ++y; //++在前面,先自增,再賦值 System.out.println("x:"+x); System.out.println("y:"+y); System.out.println("a:"+a); System.out.println("b:"+b); }}1.3 賦值運算子
package com.xuweiwei;/** * 賦值運算子 */public class Operator3 { public static void main(String[] args) { int x = 10; System.out.println("x:" + x); int y = 10; y += 20; //相當於y = y + 20; System.out.println("y:" + y); }}1.4 關係(比較)運算子
- ==,等於
- !=,不等於
- <,小於
- >,大於
- <=,小於等於
- >=,大於等於
- instanceof,檢查是否是類的對象,例,"Hello" instanceof String
- 注意事項:
- ①比較子的結果都是boolean類型,要麼是true,要麼是false。
- ②比較子“==”不要誤寫為“=”。
package com.xuweiwei;/** * 關係運算子 */public class Operator4 { public static void main(String[] args) { int a = 3; int 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(a < b); System.out.println(a <= b); }}1.5 邏輯運算子
- &,與
- |,或
- !,非
- &&,短路與
- ||,短路或
- ^,異或
package com.xuweiwei;/** * 邏輯運算子 * 特點: * 邏輯運算子一般用於串連boollean類型的運算式或值 */public class Operator5 { public static void main(String[] args) { int a = 3; int b = 4; int c = 5; //&:一假全假 System.out.println((a > b) & (a > c)); //false & false = false System.out.println((a > b) & (a < c)); //false & true = false System.out.println((a < b) & (a > c)); //true & false = false System.out.println((a < b) & (a < c)); //true & true = true //|:一真全真 System.out.println((a > b) | (a > c)); //false & false = false System.out.println((a > b) | (a < c)); //false & true = true System.out.println((a < b) | (a > c)); //true & false = true System.out.println((a < b) | (a < c)); //true & true = true //^:相同為false,不同為true System.out.println((a > b) ^ (a > c)); //false ^ false = false System.out.println((a > b) ^ (a < c)); //false ^ true = true System.out.println((a < b) ^ (a > c)); //true ^ false = true System.out.println((a < b) ^ (a < c)); //true ^ true = false }}1.6 位元運算符
- &,位與
- |,位或
- ^,位異或
- ~,反碼
- <<,左移
- >>,右移
- >>>,無符號右移
package com.xuweiwei;/** * 位元運算符: */public class Operator6 { public static void main(String[] args) { int a = 3; int b = 4; System.out.println(a & b); System.out.println(a | b); System.out.println(a ^ b); System.out.println(~a); }}
package com.xuweiwei;/** * ^ * 一個資料對另一個資料異或兩次,該數本身不變 */public class Operator7 { public static void main(String[] args) { int a = 3; int b = 4; System.out.println(a ^ b ^ b); System.out.println(a ^ b ^ a); }}
package com.xuweiwei;/** * << :左邊最高為丟棄,右邊補0 * >> :最高位為0的時候,左邊補齊0;最高位為1的時候,左邊補齊1 * >>> :無論最高位是0還是1,左邊補齊0 */public class Operator8 { public static void main(String[] args) { System.out.println(3 << 2); System.out.println(24 >> 2); System.out.println(-24 >>> 2); }}1.7 三目運算子1.7.1 格式
- (關聯運算式)?運算式1:運算式2;
- 如果關聯運算式為true,運算後的結果就是運算式1。
- 如果關聯運算式為false,運算後的結果就是運算式2。
1.7.2 三目運算子的應用
package com.xuweiwei;/** * 使用三目運算子求兩個數的最大值 */public class Operator9 { public static void main(String[] args) { int a = 10; int b = 20; System.out.println(a >= b ? a : b); }}
2 流程式控制制語句
- 在一個程式執行的過程中,各條語句的執行順序對程式的結果是有直接影響的。也就是說程式的流程對運行結果有直接影響的。所以,我們必須清楚每條語句的執行流程。而且,很多時候我們要通過控制語句的執行順序來四線我們要完成的功能。
- 流程式控制制語句的分類:
3 順序結構
- 是程式中最簡單最基本的流程式控制制,沒有特點的文法結構,按照代碼的先後順序,依次執行,程式中大多數的代碼都是這樣執行的。
- 總的來說,寫在前面的先執行,寫在後面的後執行。
package com.xuweiwei;/** * 順序結構 */public class orderDemo { public static void main(String[] args) { System.out.println("程式開始了"); System.out.println("I love java"); System.out.println("程式結束了"); }}
4 選擇結構
- 選擇結構也稱為分支結構。
- 選擇結構有特定的文法規則,代碼要執行具體的邏輯運行進行判斷,邏輯運算的結果有2個,所以產生選擇,按照不同的選擇執行不同的代碼。
- Java語言提供了兩種選擇結構語句
5 分支結構之if語句5.1 if語句的格式一5.1.1 格式
if(關聯運算式){ 語句體; }5.1.2 執行流程
- 首先判斷關聯運算式,看其結果是true還是false。
- 如果是true就執行語句體。
- 如果是false就不執行語句體。
5.1.3 if語句格式一的應用
package com.xuweiwei;public class IfDemo1 { public static void main(String[] args) { int x = 10; if (x >= 10) { System.out.println("x>=10"); } System.out.println("程式執行結束了"); }}
5.2
Java基礎三