Java学习从基础到精通——技术小白的成长之路(Java学习笔记)第五天

for循环、嵌套循环、break的讲解、while和do...while...的讲解、数组的讲解

1.for循环:

固定次数循环,应用率高

循环的选择规则:

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<arr.length;i++){

  if(arr[i]<max){

    max=arr[i];

  }

}

max=23/45/67

2.break:跳出循环

  continue:跳过循环体中剩余语句而进入下一次循环

3.三种循环结构的更佳适用情况:

  1)while:要素1与要素3不同时,首选while

  2)do...while:要素1与要素3相同时,首选do...while

  3)for:固定次数循环,应用率最高

4、嵌套循环

1)循环套循环,一般多行多列时使用,外层控制行,内层控制列。

2)执行规则:外层循环走一次,内层循环走所有次。

3)建议:循环层数越少越好,能用一层就不用两次,能用两次就不用三层,若需要必须通过三层以上的循环来解决,说明设计有问题。

4)Java中break只能跳出一次循环

某种条件下直接跳出多层循环,只是你自己想当然的想法,是错误的。

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");

}

  }

}

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,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)数组的访问:

    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中最后一个元素的值

  6)数组的遍历:

      int[] arr = new int[10];

  for(int i=0;i<arr.length;i++){

    arr[i] = 100;

  }

 

  for(int i=0;i<arr.length;i++){

    System.out.println(arr[i]);

  }

 

  for(int i=arr.length-1;i>=0;i--){

    System.out.println(arr[i]);

  }

今日实战:

 实战练习1:(数组的练习)

  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:(数组的代码)

//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.length;i++){

as[i] = (int)(Math.random()*100);

}

for(int i=0;i<as.length;i++){

System.out.println(as[i]);

}

}

}

实战练习2:(九九乘法表练习)for循环练习

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(); //换行

}

}

}

 

实战练习3:(求数组元素的最大值练习)

public class MaxOfArray {

public static void main(String[] args) {

int[] arr = new int[10];

for(int i=0;i<arr.length;i++){

arr[i] = (int)(Math.random()*100);

System.out.println(arr[i]);

}

int max = arr[0]; //假设第1个元素为最大值

for(int i=1;i<arr.length;i++){ //遍历剩余元素

if(arr[i]>max){ //若剩余元素比max大

max=arr[i]; //则修改max的值为较大的

}

}

System.out.println("最大值为:"+max);

}

}

猜你喜欢

转载自blog.csdn.net/weixin_41252239/article/details/81608058