一.3种循环结构的更佳适用情况:
1)while:”当…”
2)do…while:”直到…”
要素1与要素3相同时首选do…while
3)for:固定次数循环
二.嵌套循环:
1>循环中套循环(一般多行多列,外层控制行,内层控制列)
2>执行规则:外层循环走一次,内层循环走完.
3>建议:嵌套的层数越少越好
(若业务必须要通过三层以上的循环才能解决,说明设计有问题)
4>break只能跳出一层循环
public class Multiplication {
public static void main(String[] args) {
for(int i=1;i<=9;i++){
for(int j=1;j<=i;j++){
System.out.print(i+"*"+j+"="+i*j+"\t");
}
System.out.println();
}
}
}
三.程序=算法+数据结果
1>算法:解决问题的流程
2>数据结构:将数据按照某种特定的结构来保存
四.数组:
1>相同数据类型元素的集合
2>数组是一种数据类型(引用类型)
3>数组的定义:
int[] arr=new int[10];
4>数组的初始化:
int[] arr=new int[4];//0,0,0,0
int[] arr={1,4,7,9};
int[] arr=new int[1,4,7,9]//1,4,7,9
int[] arr;
arr={1,4,7,9};// 编译错误
arr=new int{1,4,7,9}//正确
5>数组的访问:
5.1>通过(数组名.length)来获取数组的长度
5.2>通过下标/索引来访问数组中的元素
(下标从0开始,最大为length-1 arr[0]=1; arr[arr.length-1]=11;)
6>数组的遍历.
7>数组的复制.
7.1>System.arraycopy(a,1,a1,0,4);
7.2>int[] a1=Arrays.copyOf(a,5);
a=Arrays.copyOf(a,a.length+1);//扩容
/**
* 找出最小值并将其插到数组第一个位置
*/
public class MinOfArray {
public static void main(String[] args) {
int[] arr=new int[10];
int min=100;
for(int i=0;i<arr.length;i++){
arr[i]=(int)(Math.random()*100);
if(min>arr[i])
min=arr[i];
System.out.print(arr[i]+" ");
}
System.out.println("\nmin="+min);
arr=Arrays.copyOf(arr,arr.length+1);
System.arraycopy(arr, 0, arr, 1, arr.length-1);
arr[0]=min;
for(int i=0;i<arr.length;i++)
System.out.print(arr[i]+" ");
}
}
8>数组的排序.
8.1>Arrays.sort(arr);对arr进行升序排列
8.2>冒泡排序法
public static void main(String[] args) {
//冒泡排序
int[] a=new int[10];
for(int i=0;i<a.length;i++){
a[i]=(int)(Math.random()*100);
System.out.print(a[i]+" ");
}
System.out.println();
for(int i=0;i<a.length-1;i++){
for(int j=0;j<a.length-1-i;j++){
if(a[j]>a[j+1]){
int temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
for(int i=0;i<a.length;i++){
System.out.print(a[i]+" ");
}
}