控制语句和数组

##跳转控制语句 —— break
- 介绍
    - break语句用于终止某个语块的执行 一般使用在switch 或者循环(for while do-while)中
- 基本语法
    {……
    break;
    ……
    }
- 注意事项和细节说明
    - 1 break语句出现在多层嵌套的语句块中 可以通过标签指明要终止的是哪一层语句块
      - 2 标签的基本使用
          label 1:{……
          label 2:  {……
          label 3:      {……
                          break label2;
                         }
                      }
                    }
          - break语句可以指定退出哪层
          - label 1 是标签 由程序员决定
          - break 后指定到哪个label就退出到哪里
          - 在实际开发中 尽量不要使用标签
          - 如果没有指定的break 默认退出最近的循环体
##跳转控制语句 - continue
- 基本介绍;
    - 1 continue 语句用于结束本次循环 继续执行下一个循环
    - 2 continue 语句出现在多层嵌套的循环语句体中 可以通过内标签指明要跳过的是那一层循环
        这个和前面的标签使用的规则是一样的
    - 基本语法:
       {……
       continue;
      ……
       }
    - 注意事项和细节说明:
        - continue 与 break 的标签用法相似
##跳转控制语句 - return
- 介绍:
    return使用在方法 表示跳出 所在的方法 【注意】如果return写在main方法 退出程序
## 数组 ##
- 使用方法:
    - 1 数据类型[] 数组名 = new 数据类型[大小]
    - 2 先声明数组 数据类型[] 数组名 后创建数组 数组名 = new 数据类型[大小]
    - 3 数据类型[] 数组名 = {元素值,元素值……}
- 数组的使用
  数组名[下标/索引]
- 使用的注意事项和细节
    - 1 数组是多个相同数据类型的组合 实现对数据的统一管理
    - 2 数组中的元素可以是任何数据类型 包括基本类型和引用类型 不可以混用
    - 3 数组创建后 如果没有赋值 又默认值 比如: int 0,short 0,byte 0,long 0,float 0.0
      double 0.0 char \u0000, boolean false,String null
    - 4 使用数组的步骤 声明数组并开辟空间 给数组各个元素赋值 使用数组
    - 5 数组的下标从0开始
    - 6 数组下标必须在指定范围内使用 否则就会索引越界异常
    - 7 数组属于引用类型 数组数据是对象object
- 数组赋值机制
    - 基本数据类型赋值 赋值方式为值拷贝
    - 数组在默认情况下是引用传递  赋的值是地址 如果把Arr1这个数组的值赋给Arr2 当Arr2中某一个值发生变化 则会影响Arr1
【练习题代码如下所示】

package lfx250222;

import java.util.Scanner;
//打印空心金字塔

public class exchangeStar {
    public static void main(String[] args) {
        Scanner sca= new Scanner(System.in);
        int count = sca.nextInt();
        for (int i = 1; i <=count ; i++) {
            //输出星号之前要先输出空格
            for (int a = count-i;a>0;a--) {
                System.out.print(" ");
            }
            for (int j = 1; j <= i * 2 - 1; j++) {
                if(j==1||j==i*2-1||i==count) {
                    System.out.print("*");
                }else {
                    System.out.print(" ");
                }

            }

            System.out.println("");

        }
    }
}
package lfx250222;

public class breakExer01 {
    //随机生成1-100的一个数 直到生成了97 一共用了几次
    //提示 (int)(Math.random()*100+1
    /*
    (int)(Math.random()*100+1的解读
    1 Math.random():这个方法会生成一个 double类型[0.0, 1.0) 之间的随机小数(包括 0.0,但不包括 1.0)
    2 Math.random() * 100:将结果乘以 100,范围就变成了 [0.0, 100.0)。
    3 Math.random() * 100 + 1:再加上 1,范围就变成了 [1.0, 101.0)
    4 (int):通过强制转换为整数,去掉小数部分,最终得到一个 [1, 100] 之间的随机整数。

     */
    public static void main(String[] args) {
        int count=0;
        int randomNum;
        for (;;) {//表示无限循环
            randomNum=(int)(Math.random()*100+1);
            count++;

            System.out.println("第"+count+"次,生成的数字是"+ randomNum);
            if (randomNum==97){

                break;
            }
        System.out.println("97出现一共生成了"+count+"次");
        }

    }
}


  

package lfx250222;

public class Coutinue01 {
    public static void main(String[] args) {
        int i = 1;
        while (i <= 4){
            i++;
            if (i==2){
                //只要遇到continent就直接进入下一个循环,因此不会输出i
                continue;
            }
            System.out.println("i="+i);
        }

    }
}

package lfx250223;

import java.util.Arrays;
import java.util.Scanner;

public class ArrExer {
    public static void main(String[] args) {
        //数组拷贝  int[] arr1 = {10,20,30};拷贝到arr2
//        //要求数据空间独立
        int[] arr1 = {10,20,30};
//        //创建一个新的数组 开辟一个独立的空间
        int[] arr2 = new int[arr1.length];//此时arr1与arr2 的长度一致

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

                arr2[i] = arr1[i];
            System.out.println("arr2的值为"+arr2[i]);
        }

        arr2[2] = 100;
        System.out.println("===arr1的值===");
        for (int i = 0; i < arr1.length; i++) {

            System.out.println("arr1的值为"+arr1[i]);

        }
        System.out.println("===arr2的值===");
        for (int i = 0; i < arr2.length; i++) {

            System.out.println("arr2的值为"+arr2[i]);

        }
//        //数组反转
        //要求:将数组的元素内容反转
        int[] arr = {11,22,33,44,55,66};
        for (int i = 0;i < arr.length / 2 ; i++){//反转数组的数字
            int temp = arr[i];
            arr[i] = arr[arr.length-1-i];
            arr[arr.length-1-i] = temp;

        }
        //要想看到完整的反转数组 必须要for循环后输出 否则看不到
        System.out.println("===反转后的数组===");
        for (int i = 0;i

package lfx250223;

import java.util.Arrays;

public class ArrExer02 {
    public static void main(String[] args) {
        /*
        ##数组缩减
        - 删除数组中指定位置的元素
        - 定义一个数组 要用到删除元素的索引indexToRemove
        - 创建一个新数组 长度是原来数组长度 - 1
        - 遍历原来的数组将索引的元素放到新的数组
        - 最后使用Arrays.toString()方法输出缩减后的数组

         */
        int[] arr3 = {1,2,3,4,5,6};
        int indexToRemove = 3;//删除元素的索引
        //创建一个新的数组
        int[] arr4 = new int[arr3.length-1];
        int j = 0;
        System.out.println("缩减后的数组arr4");
        for (int i = 0; i < arr3.length; i++) {
            //判断原来数组的索引是不是等于删除的索引 如果等于就不能将值赋给新数组
            if (i != indexToRemove){
                arr4[j++] = arr3[i];

            }

        }
        System.out.println("缩减后的数组"+ Arrays.toString(arr4));
      
    }
}

【数组的缩减还有两种没有写后面会补充】




















 

你可能感兴趣的:(蓝桥杯准备,算法,数据结构)