任何複雜的程序都通過 1.順序;2.分支;3.循環
1)條件判斷
分支結構: if 一路;
if..else 兩路;
if...else if 多路;
swich...case 多路 優:效率高,結構清晰;缺:整數相等
(switch的case語句可以處理int,short,byte,char類型的值,因爲short,byte,char都會轉換成int進行處理,這一點也可以從生成的字節碼看出。在JDK 5中加入的枚舉Enum類型也是可以作爲case值的。在JDK 7中,又加入了對String類型的支持,從此不用再寫If-Else來判斷字符串了。)
2)循環
反覆的執行相同或者相似的代碼
循環三要素:1:循環變量的初始化
2:循環的條件(以循環變量爲基礎)
3:循環變量的改變(向着循環的結束變)
**循環變量:在循環過程中產生的量
break:跳出循環,與條件語句一起使用; continue:作用爲跳過循環體中剩餘語句而執行下次循環。
循環方法:
1.while:先判斷都執行,有可能一次都不執行
2.do..while:先執行,後判斷,至少走一次。當第一要素與和第三要素相同用do..while
3.for:應用率高 for(;;):死循環
嵌套循環:
1.循環中套循環,一般多行多列中使用,外層控制行,內層控制列。
2.外層循環走一次,內層循環走所有次。
3 .循環層次越少越好,因爲層數越少效率越高。
4.break只跳出當前循環。
列子:
冒泡原理:1.4個數冒3輪
2.每一輪都從第一個元素比,每一次都是和它的下一個元素比
3.冒出來就不用比了。
補充:
隨機數生成1~1000之內的數:
Math.random() 0.0~0.99999...
x1000 0.0~999.999.....
+1 1.0~1000.99....
複製:
System.arrayCopy()
複製,擴容:
Arrays.copyOf()
排序,升序
Arrays.sort(arr)
3)數組(最基本的數據結構)
1.相投類型數據的集合
2.數組是一種數據類型(引用類型)
3.數組的定義 eg: int[] arr=new int[4];
4.數組的初始化 eg: int[] arr=new int[3] //1,2,3
int[] arr1={2,5,8,9} //2,5,8,9
int[] arr2=new int[]{2,5,8,9} //2,5,8,9
5.數組的訪問:遍歷
6.數組的排序
eg:找最大算法:
6.1假設第一個元素爲最大 int max=arr[0]
6.2遍歷剩餘元素,max爲每一個元素做比較,若元素大於max,則修改爲max的值爲較大的,
for (int i=0;i<arr.length;i++) {
if (arr[i] > max) {
amx=arr[i];
}
}