1. 程式人生 > >Java碼農進階之路~基本資料型別&運算子&流程控制-分支&三目

Java碼農進階之路~基本資料型別&運算子&流程控制-分支&三目

基本資料型別

    首先先說下位元組:位元組(byte)是計算機資訊科技用於計量儲存容量的一種計量單位

    通常情況下一位元組由8個二進位制位表示 0000 0000;一個位元組的取值範圍為-128~127.

大家有興趣的可以瞭解下為什麼是-128~127.

    一個Byte由八個位組成,如0000 0000,其中後七位表示數值,最前面的一位是符號位(0為正,1為負).這樣+1就是0 000 0001, -1就是1000 0001.那麼最大的正數就是0111 1111,即2^0+2^1+.......2^6=127;同理,最小的負數為1111 1111,即-127;而之所以說取值範圍是-128~127,是因為0會出現一個+0和一個-0.這時,將-0規定為-128,這樣就與計算機的補碼(程式都是按補碼執行的)完美的結合在一起.
    1.整數型

            short    短整型 2個位元組

    int    整型 4個位元組

            long      長整型 8個位元組

    2.小數型(浮點型)

            float    4個位元組

            double    8個位元組(double)

    3.字元型

            字串型

    下面我們來舉個例子

public class Demo {
	public static void main(String[] args) {
		//常量	在程式中,不能修改的量就是常量
		//宣告一個變數---儲存資料
		//資料型別+變數名 = 初值;
		int a = 10;//定義了一個整型變數,初值為10
		a = 15;
		byte b = 10;
		short s = 10;
		long m = 10;
		/*
		 *double是儲存小數的
		 *但是,現在賦值的是一個整數 
		 *這時系統會進行 隱式轉換
		 *把小的型別 幫你 轉換 成大的型別
		 */
		double d = 10;
		System.out.println(d);//10.0
		//強制型別轉換 會丟失資料精度
		//宣告一個小數 系統預設 使用的是double型別
		int number = (int)3.13;
		System.out.println(number);
		
		//宣告float型別小數,需要使用識別符號f標識
		float f = 10.0f;
		System.out.println(f);
		/*
		 * 特殊型別 字元型別
		 * 特點:字元型別可以和整形相互轉換
		 * 宣告字元型 使用 單引號
		 */
		char ch = 'a';
		System.out.println(ch);
		//強轉完 列印該字元在 AscII表中對應的值
		System.out.println((int)ch);
		char ch1 = 97;
		System.out.println(ch1);
		
		//字串型別
		//字串中+號 相當於連線兩個字串(拼接)
		String str1 = "haha";
		String str2 = "wawa";
		System.out.println(str1 + str2);
		
		int num1 = 10;
		System.out.println("num1 = " + num1);
		int num2 = 15;
		System.out.println(num1 + num2);
		//數字和字串 使用+連線的時候
		//相當於直接做字串的拼接
		//和字串相加 一定會得字串
		System.out.println(str1 + num1 +num2);
	}
} 
運算子
 1.算術運算子 + - * / %(區域運算子) ++ --
 2.關係運算符 > = < >= <= == !=

 使用關係運算符 是用來判斷的,並且判斷結束後會有一個結果 布林值true false

 邏輯運算子 (用來判斷 返回一個布林值)

 && 邏輯與 (條件1)&&(條件2) 一假則假

 || 邏輯或 (條件1)||(條件2) 一真則真    ---邏輯運算需注意其短路現象

 !邏輯非 非真即假

public class Demo {
	public static void main(String[] args) {
		//取模運算(用的最多 是對2取餘)
		//判斷是不是偶數
		int n1 = 10 % 2;
		System.out.println("n1 = " + n1);
		
		// 除法
		int n2 = 10 / 3;
		System.out.println("n2 = " + n2);
		//ArithmeticException算術異常
//		int n22 = 10 / 0;
//		System.out.println(n22);
		
		//自增運算(++) 和 自減運算(--)
		//++在前,先自增再參與運算
		//++在後,先參與運算再自增
		int n3 = 10;
		n3++;
		System.out.println("n3 = " + n3);
		
		int n4 = 10;
		int n5 = n4 + ++n4;// 10 + 11
		System.out.println("n4 = " + n4);//11
		System.out.println("n5 = " + n5);//21
		
		//宣告一個布林型別變數
		//只有兩個值 true false
		//宣告狀態 和 判斷時候用
		boolean b = true;
		System.out.println(b);
		
		int num1 = 10;
		int num2 = 10;
		boolean result1 = num1 == num2;
		System.out.println(result1);
		
		//判斷兩個字串是否相等
		String str1 = "wanglong";
		String str2 = "pengqian";
		str1.equals(str2);
		boolean reslut2 = str1.equals(str2);
		System.out.println(reslut2);
		
		int num3 = 10;
		int num4 = 15;
		int num5 = 12;
		// 邏輯與的短路現象
		// 一假則假 如果條件1已經不成立了
		//			那麼系統不會執行後面的語句
		boolean reslut3 = (num3 > num4) && (++num3 > num5);
		System.out.println("num3 = " + num3);//10
		boolean reslut4 = (num3 < num4) && (++num3 > num5);
		System.out.println(reslut3);
		System.out.println("num3 = " + num3);//11
		
		//邏輯或短路
		//一真則真 如果條1為真,那麼後面就不會執行
		boolean reslut5 = (num3 < num4) || (num3++ > num5);
		System.out.println("reslut5 = " + reslut5);
		System.out.println("num3 = " + num3);//11
	}
}
分支運算---if    switch
    if---三種寫法

if(判斷條件){

      執行的語句 

   }

if(判斷條件){

      執行語句1(條件成立時)

  }else{

執行語句2(條件不成立時)

 } 

if(條件1){

 執行語句1(條件1成立時)

}else if(條件2){

執行語句2(條件2成立時)

}else{

執行語句3

}

    switch

    switch (key---被匹配的值) {

case value--匹配的值:

執行語句1

break;

case 匹配的值2:

執行語句2

break;

可以有很多個case

        default:

            如果前面都沒有匹配上

就執行default

break;

}

理論上來說,能使用if的,就一定能使用switch語句

什麼時候使用if,什麼時候使用switch

如果判斷時候 條件是個範圍用if

如果判斷時候 條件是幾個值,使用switch相對簡單一點

 三目運算

    (判斷條件)?值1 : 值2;

    判斷條件成立 返回值1 反之 返回值2

    int num1 = 10;

    int num2 = 15;

    int max = 0;

    max = (num1 > num2) ? num1 : num2;//15