任何复杂的程序都通过 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];
}
}