固定次数循环,应用率高。
循环的选择规则:
1)先看固定次数还是不固定次数:
1.1)固定次数------------------------直接for循环
1.2)不固定次数:
1.2.1)要素1与要素3相同时--------直接do...while循环
1.2.2)要素1与要素3不同时--------直接while循环
找最大值的算法:(for循环示例)
int[] arr = {23,45,67,3};
找最大值算法:
1)假设第1个元素为最大值:
int max = arr[0];
2)遍历剩余元素,将剩余元素与max进行对比,
若剩余元素大于max,则修改max的值为较大的
for(int i=1;i if(arr[i] max=arr[i]; } } max=23/45/67 continue:跳过循环体中剩余语句而进入下一次循环 1)while:要素1与要素3不同时,首选while 2)do...while:要素1与要素3相同时,首选do...while 3)for:固定次数循环,应用率最高 1)循环套循环,一般多行多列时使用,外层控制行,内层控制列。 2)执行规则:外层循环走一次,内层循环走所有次。 3)建议:循环层数越少越好,能用一层就不用两次,能用两次就不用三层,若需要必须通过三层以上的循环来解决,说明设计有问题。 4)Java中break只能跳出一次循环 某种条件下直接跳出多层循环,只是你自己想当然的想法,是错误的。 for(int i=1;i<=100;i++){ for(int j=1;j<=200;j++){ for(int k=1;k<=300;k++){ if(boolean){ break;---------跳出k层 } System.out.println("aaa"); } } } 1)算法:解决问题的流程/步骤(顺序、分支、循环) 2)数据结构:将数据按照某种特定的结构来保存。(数怎么存) 设计合理的/良好的数据结构会到导致良好的算法 int[] arr = new int[10]; int[] arr = new int[4]; //0,0,0,0 int[] arr = {1,4,5,7}; //1,4,5,7 int[] arr = new int[]{1,4,5,7}; //1,4,5,7 int[] arr = new int[]{1.0,4,5.2,7}; //编译错误,类型不统一 int[] arr; arr = {1,4,5,7}; //编译错误,此方式只能声明的同时初始化 arr = new int[]{1,4,5,7}; //正确 5.1)通过(数组名.length)来获取数组的长度(元素的个数) int[] arr = new int[4]; System.out.println(arr.length); //4 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]); //输出arr中最后一个元素的值 int[] arr = new int[10]; for(int i=0;i arr[i] = 100; } for(int i=0;i System.out.println(arr[i]); } for(int i=arr.length-1;i>=0;i--){ System.out.println(arr[i]); } 1)声明整型数组arr1,包含20个元素 2)声明整型数组arr2,并直接将元素赋值为2,5,8 声明整型数组arr3,给arr3先new再直接赋值为2,5,8 3)声明整型数组arr,包含3个元素 给arr第1个元素赋值100,给arr第2个元素赋值200 给arr第3个元素赋值300 arr[3] = 400;--------------??? 输出arr的长度,输出arr最后一个元素的值(下标不能写死) 4)创建类MaxOfArray,在main()中: 4.1)声明整型数组arr,包含10个元素 4.2)遍历arr,给每个元素赋值为0到99之间的随机数 4.3)遍历arr,输出每个元素的值 //1.数组的定义: int[] arr1 = new int[10]; //2.数组的初始化: int[] arr2 = new int[3]; //0,0,0 int[] arr3 = {2,4,5}; //2,4,5 int[] arr4 = new int[]{2,4,5}; //2,4,5 int[] arr5; //arr5 = {2,4,5}; //编译错误,此方式只能声明的同时初始化 arr5 = new int[]{2,4,5}; //正确 //3.数组的访问: int[] arr = new int[3]; System.out.println(arr.length); //3 arr[0] = 100; arr[1] = 200; arr[2] = 300; //arr[3] = 400; //数组下标越界异常 System.out.println(arr[arr.length-1]); //4.数组的遍历: int[] as = new int[10]; for(int i=0;i as[i] = (int)(Math.random()*100); } for(int i=0;i System.out.println(as[i]); } } } public class MultiTable { public static void main(String[] args) { for(int num=1;num<=9;num++){ //行 for(int i=1;i<=num;i++){ //列 System.out.print(i+"*"+num+"="+i*num+"\t"); } System.out.println(); //换行 } } } public class MaxOfArray { public static void main(String[] args) { int[] arr = new int[10]; for(int i=0;i arr[i] = (int)(Math.random()*100); System.out.println(arr[i]); } int max = arr[0]; //假设第1个元素为最大值 for(int i=1;i if(arr[i]>max){ //若剩余元素比max大 max=arr[i]; //则修改max的值为较大的 } } System.out.println("最大值为:"+max); } }2.break:跳出循环
3.三种循环结构的更佳适用情况:
4、嵌套循环
break跳出循环的讲解:
5、程序=算法+数据结构
6.数组:
1)是一种数据类型(引用类型)
2)相同数据类型元素的集合
3)数组的定义:
4)数组的初始化:
5)数组的访问:
6)数组的遍历:
今日实战:
实战练习1:(数组的练习)
数组的练习1:(数组的代码)
实战练习2:(九九乘法表练习)for循环练习
实战练习3:(求数组元素的最大值练习)