運算符,分支結構和循環結構

運算符,分支結構和循環結構

1. 運算符

1.1 自增自減運算符
【注意】
	自增自減運算符有且只能操作變量。

++:操作的變量自增 1
	變量前: 先執行自增語句,再來參與當前代碼行運行
	變量後: 先執行當前代碼行運行,再執行自增語句

--:操作的變量自減 1
	變量前: 先執行自減語句,再來參與當前代碼行運行
	變量後: 先執行當前代碼行運行,再執行自減語句

【開發建議】
	1. 非要使用自增長運算符,建議單獨成行。
	2. 使用 += 1 和 -= 1 替換自增自減運算符  Swift iOS
自增自減運算符面試題
1. 
	int num = 5;
	int ret = num++ * num;
	
	num = ?; 6
	ret = ?; 30

2.
	int num = 10;
	++(num++);
	num = ?; 	編譯報錯
	(num++)首先執行,但是小括號裏面的內容對外是一個整體,也就是一個常量!!!
	自增自減運算符【不能操作常量】
1.2 邏輯運算符
&&
	保險櫃的門,顧客一把鑰匙,管理員一把鑰匙,缺一不可
	同真爲真,有假【即】假
||
	自己家門,任何一個人帶有鑰匙,都可以開門
	有真【即】真,同假爲假
!
	強牛 犟
	取反
邏輯運算符的斷路原則問題
class Demo4 {
	public static void main(String[] args) {
		int num = 10;
		boolean ret = 4 < 3 && num++ > 10;
		/*
		邏輯與斷路原則問題
			邏輯與同真爲真,有假【即】假。
			邏輯與表達式中如果出現了任何一個false條件,
			從false條件開始,之後的表達式不再運行,因爲
			整個邏輯與表達式的結果已經確定爲false。爲了
			簡化計算機的運算邏輯複雜度!!!
		*/
		System.out.println("ret : " + ret);
		System.out.println("num : " + num);
		
		int num1 = 20;
		boolean ret1 = 10 > 5 || ++num1 < 30;
		/*
		邏輯或斷路原則問題
			邏輯或有真【即】真,同假爲假
			邏輯或表達式中如果出現了一個true條件,之後的
			表達式就不再運行,因爲整個邏輯或的結果已經確定
			爲true,這樣做是爲了簡化計算機運算邏輯複雜度
		*/
		System.out.println("ret1 : " + ret1);
		System.out.println("num1 : " + num1);
	} 
}

2. 分支結構

2.1 開發中常見的結構
順序結構
	代碼從上之下,從左至右執行!!!
分支結構
	條件判斷,條件滿足執行對應代碼
循環結構
	在程序中重複執行功能代碼
2.2 if
2.2.1 if分支
if (/* 條件判斷 true or false */) {
    // 條件結果爲true執行大括號以內的語句
}
/*
執行流程:
	代碼運行到if分支結構,首先判斷if之後的條件是否爲true,如果爲true,執行大括號裏面的語句,如果爲false直接執行大括號之外的語句,
*/
class Demo5 {
	public static void main(String[] args) {
		int money = 10;
		
		if (money > 2000000) {
			System.out.println("Audi A8L W12");
		}
		
		System.out.println("白日做夢!!!");
	}
}
2.2.2 if - else分支
if (/* 條件判斷 true or false */) {
    // true語句體
} else {
    // false語句體
}
/*
執行流程:
	代碼運行到if-else結構時,首先判斷if之後的條件是否爲true,如果爲true,執行if之後大括號內容,true語句體,如果爲false,執行else大括號內容,false語句體
*/
class Demo6 {
	public static void main(String[] args) {
		int money = 20;
		
		if (money > 50) {
			System.out.println("喫一頓紅燒肉");
		} else {
			System.out.println("饅頭 + 涪陵榨菜");
		}
	}
}
2.2.3 if - else if結構
if (/* 條件匹配1 */) {
    // 處理方式1
} else if (/* 條件匹配2 */) {
    // 處理方式2
} else if (/* 條件匹配3 */) {
    // 處理方式3
} else {
    // 沒有任何條件滿足下的處理方式
}
/*
執行流程:
	代碼運行到if-else if結構時,匹配if之後的條件,找到匹配項,執行對應的處理方式,如果沒有任何一個條件匹配,執行else裏面的語句。
	
成績等級劃分:
	90 ~ 100 秀兒
	80 ~ 90 良兒
	70 ~ 80 中兒
	60 ~ 70 過兒
	60 以下
		叫你爹穿着拖鞋來學校一趟
*/
class Demo7 {
	public static void main(String[] args) {
		int score = 59;
		
		if (score >= 90) {
			System.out.println("秀兒");
		} else if (score >= 80) {
			System.out.println("良兒");
		} else if (score >= 70) {
			System.out.println("中兒");
		} else if (score >= 60) {
			System.out.println("過兒");
		} else {
			System.out.println("叫恁爹穿着拖鞋來學校一趟");
		}
	}
}

【補充知識點 從鍵盤上獲取用戶輸入的數據】

1. 點技能點 【導包】
在class之前複製粘貼
import java.util.Scanner;

2. 創建一個Scanner的變量
Scanner sc = new Scanner(System.in);

3. 使用Scanner的方法從鍵盤上獲取數據
獲取int類型數據
	int類型變量 = sc.nextInt();
獲取float類型數據
	float類型變量 = sc.nextFloat();
獲取char類型數據
	char類型變量 = sc.nextLine().charAt(0);

【補充知識點 用戶體驗問題】

在代碼運行過程中需要給予用戶更好的體驗!!!是非常友好的體驗。

【補充知識點 用戶輸入數據合法性判斷】

在實際代碼運行過程中,用戶提供的數據很有可能是非法情況。這是需要在滿足用戶基本需求的情況下,同時滿足代碼的正常運行!!!
增強代碼的健壯性,穩定性
2.3 switch case
switch (變量) {
    case 常量1:
        處理方式1;
        break;
    case 常量2:
        處理方式2;
        break;
    case 常量3:
        處理方式3;
        break;
    default:
        沒有匹配任何case之後的處理方式
        break;
}
/*
執行流程:
	代碼運行到switch case結構,使用switch之後小括號裏面的變量,去匹配case之後的常量,如果有匹配項,執行對應的處理方式,如果沒有匹配項執行default裏面的處理方式。
	
特徵:
	1. 在switch - case 結構中,能夠使用的代碼有且只能是case 到 break 或者 大括號之間,還有就是default之後的的語句
	2. break可以省略,對應case執行是會繼續執行到下一個break或者switch大括號停止
	3. 在switch case結構中,不能出現相同case選項,case之後的選擇是唯一的。
	4. 在switch case結構中,可以出現並列選項
		case 3:
		case 4:
		case 5:
	5. default可以省略,需要根據實際的開發需求而定。
*/

3. 循環結構

3.1 爲什麼是用循環結構
代碼中一定會出現多次使用的代碼塊,而代碼中重複使用 如果僅僅是依賴於CV大法,那麼會導致以下問題出現
	1. 代碼冗餘
	2. 代碼閱讀性極差
	3. 代碼維護性極差【給自己留個活路】
3.2 while循環結構
while (/* 循環條件 true or false */) {
    // 循環體
    // (循環條件變更)
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章