1. 程式人生 > >Java基礎(變數,運算子)

Java基礎(變數,運算子)

1.基本資料型別:

 

一、分析基本資料型別的特點,最大值和最小值。
1、
基本型別:int 二進位制位數:32
包裝類:java.lang.Integer
最小值:Integer.MIN_VALUE= -2147483648 (-2的31次方)
最大值:Integer.MAX_VALUE= 2147483647  (2的31次方-1)
2、
基本型別:short 二進位制位數:16
包裝類:java.lang.Short
最小值:Short.MIN_VALUE=-32768 (-2的15此方)
最大值:Short.MAX_VALUE=32767 (2的15次方-1)
3、
基本型別:long 二進位制位數:64
包裝類:java.lang.Long
最小值:Long.MIN_VALUE=-9223372036854775808 (-2的63次方)
最大值:Long.MAX_VALUE=9223372036854775807 (2的63次方-1)
4、
基本型別:float 二進位制位數:32
包裝類:java.lang.Float
最小值:Float.MIN_VALUE=1.4E-45 (2的-149次方)
最大值:Float.MAX_VALUE=3.4028235E38 (2的128次方-1)
5、
基本型別:double 二進位制位數:64
包裝類:java.lang.Double
最小值:Double.MIN_VALUE=4.9E-324 (2的-1074次方)
最大值:Double.MAX_VALUE=1.7976931348623157E308 (2的1024次方-1)

1個位元組是8位 
只有8種基本型別可以算.其他引用型別都是由java虛擬機器決定的自己不能操作 
byte 1位元組 
short 2位元組 
int 4位元組 
long 8位元組 
float 4位元組 
double 8位元組 
char 2位元組 
boolean 1位元組


2.基本資料型別間的轉換:


  1)自動型別轉:小到大
    強制型別轉:大到小 (要轉換成為的型別)變數
               強轉有可能溢位或丟失精度
  2)short s1 = 5;
    short s2 = 8;
    short s3 = (short)(s1+s2);

3.運算子:


  1)算術運算子:+,-,*,/,%,++,--
  2)關係運算符:>,<,>=,<=,==,!= boolean 
  3)邏輯運算子:&&,||,! boolean 
  4)賦值運算子:=,+=,-=,*=,/=,%=
  5)字串連線運算子:+
  6)條件/三目運算子:boolean?數1:數2

4.分支結構:

  1)if:1條路
  2)if...else:2條路
  3)if...else if結構:多條路

Scanner scan = new Scanner(System.in);
		System.out.println("請輸入成績:");
		int score = scan.nextInt();
		
		if(score<0 || score>100){
			System.out.println("成績不合法");
		}else if(score>=90){ //score>=0 && score<=100 
			System.out.println("A-優秀");
		}else if(score>=80){
			System.out.println("B-良好");
		}else if(score>=60){
			System.out.println("C-中等");
		}else{
			System.out.println("D-不及格");
		}


  4)switch...case結構:多條路
    優點:效率高、結構清晰
    缺點:整數、相等
    break:跳出switch

Scanner scan = new Scanner(System.in);
		System.out.println("請選擇功能:1.顯示全部記錄  2.查詢登入記錄  0.退出");
		int command = scan.nextInt();
		
		switch(command){
		case 1:
			System.out.println("顯示全部記錄");
			break;
		case 2:
			System.out.println("查詢登入記錄");
			break;
		case 0:
			System.out.println("下次再來吧!");
			break;
		default:
			System.out.println("輸入錯誤");
		}
		


5.迴圈:


  1)反覆執行一段相同或相似的程式碼
  2)迴圈三要素:
    2.1)迴圈變數的初始化
    2.2)迴圈的條件(以迴圈變數為基礎)
    2.3)迴圈變數的改變(向著迴圈的結束變)
    迴圈變數:在迴圈過程中所反覆改變的那個數
  3)迴圈結構:
    3.1)while:先判斷後執行,有可能一次都不執行

int times=0;     //1.迴圈變數的初始化
		while(times<10){ //2.迴圈的條件
			System.out.println("行動是成功的階梯");
			times++;     //3.迴圈變數的改變
		}


    3.2)do...while:先執行後判斷,至少執行一次
                   要素1與要素3相同時,首選do...while

    3.3)for迴圈

//累加1到100的和,跳過個位為3的
		int sum = 0; //和
		for(int num=1;num<=100;num++){
			if(num%10==3){
				continue; //跳過迴圈體中剩餘語句而進入下一次迴圈
			}
			sum += num;
		}
		System.out.println("sum="+sum);

    迴圈的比較:

1.for迴圈:應用率最高、固定次數迴圈
2.break:跳出迴圈
  continue:跳過迴圈體中剩餘語句而進入下一次迴圈
3.三種迴圈結構的更佳適用情況:
  1)while:"當..."
          要素1與要素3不同時選while
  2)do...while:"直到..."
               要素1與要素3相同時首選do...while
  3)for:固定次數迴圈,應用率最高
4.巢狀迴圈:
  1)迴圈中套迴圈,一般多行多列時使用,外層控制行,內層控制列
  2)執行規則:外層迴圈走一次,內層迴圈走所有次
  3)建議:迴圈層數越少越好,能用一層就不用兩層,能用兩層就不用三層
         若需要必須通過三層以上的迴圈來解決,說明設計有問題
  4)break只能跳出一層迴圈
5.程式=演算法+資料結構:
  1)演算法:解決問題的流程/步驟(順序、分支、迴圈)
  2)資料結構:將資料按照某種特定的結構來儲存
             數怎麼存
  設計良好的/合理的資料結構會導致好的演算法

6.陣列

1)相同資料型別元素的集合
  2)是一種資料型別(引用型別)
  3)陣列的定義:
      int[] arr = new int[10];
  4)陣列的初始化:
      int[] arr = new int[4]; //0,0,0,0
	  int[] arr = {1,4,5,8};  //1,4,5,8
	  int[] arr = new int[]{1,4,5,8}; //1,4,5,8
	  int[] arr;
	  arr = {1,4,5,8}; //編譯錯誤,此方式只能宣告同時初始化
	  arr = new int[]{1,4,5,8}; //正確
  5)陣列的訪問:
    5.1)通過(陣列名.length)可以獲取陣列的長度
	      int[] arr = new int[8];
		  System.out.println(arr.length); //8
	5.2)通過下標/索引來訪問陣列中的元素
	    下標從0開始,最大到(陣列的長度-1)
		  int[] arr = new int[3];
          arr[0] = 100; //給arr中的第1個元素賦值為100
          arr[1] = 200; //給arr中的第2個元素賦值為200
		  arr[2] = 300; //給arr中的第3個元素賦值為300
		  arr[3] = 400; //陣列下標越界異常
		  System.out.println(arr[arr.length-1]); //輸出最後一個元素的值
  6)陣列的遍歷:
      int[] arr = new int[10];
	  for(int i=0;i<arr.length;i++){
	    arr[i] = 100;
	  }

陣列的複製:參見另一篇部落格:java語言複製陣列的四種方法(https://blog.csdn.net/ClearLoveQ/article/details/85005264

7.集合

 

參見另一篇部落格:Java的集合 (https://blog.csdn.net/ClearLoveQ/article/details/85007778)