JavaSE 03 (循环跳转和嵌套、随机数、数组)

1.循环跳转

  • break: 是用来终止循环的, 循环不再继续执行.
//案例: 打印10次`HelloWorld`,  当打印第五次的时候, 结束循环.
public class BreakDemo01 {
    public static void main(String[] args) {
        System.out.println("start");
        //1. 定义for循环, 打印10次HelloWorld
        for (int i = 1; i <= 10 ; i++) {
            //2.当i等于5的时候, 结束循环
            if (i == 5)
                break;
            System.out.println("Hello World! " + i);
        }
        System.out.println("end");
    }
  • continue: 用来结束本次循环, 进行下一次循环的, 循环还会继续执行.
//案例; 打印1~10之间, 所有不是3倍数的整数.
public class ContinueDemo02 {
    public static void main(String[] args) {
        System.out.println("start");
        //1. 通过for循环, 获取1 - 10之间所有的整数
        for (int i = 1; i <= 10; i++) {
            //2. 判断该数字是否是3的倍数.
            if (i % 3 == 0)
                //3. 如果是, 就结束本次循环
                continue;
            //4. 如果不是, 就打印该数字的值.
            System.out.println(i);
        }
        System.out.println("end");
    }
}

2.循环嵌套

所谓的循环嵌套指的是循环结构中还包裹着循环结构, 外边的循环结构叫外循环, 里边的循环结构叫内循环.

循环嵌套用的最多的就是for循环的嵌套, 具体格式如下:

for(初始化条件; 判断条件; 控制条件) {        //外循环, 例如: 5   1      2
   for(初始化条件; 判断条件; 控制条件) {     //内循环, 例如: 3   1,2,3  1,2,3
      //循环体;
   }
}
执行流程

1.外循环执行一次, 内循环执行一圈.
2.循环嵌套的总执行次数 = 外循环的次数 * 内循环的次数.

案例:打印2020年1月至2023年12月之间所有的月份, 格式为: XXXX年XX月

//案例: 打印年月
public class ForForDemo04 {
    public static void main(String[] args) {
        //1. 定义外循环, 控制年份的变化.
        for (int i = 2020; i <= 2023 ; i++) {       //外循环执行一次, 内循环执行一圈.
            System.out.println("start");
            //变量i的取值: 2021, 2022, 2023
            //2. 定义内循环, 控制月份的变化.
            for (int j = 1; j <= 12 ; j++) {
                System.out.print(i + "年" + j + "月\t");
            }
            System.out.println();   //记得加换行
            System.out.println("end\r\n");
        }
    }

3.带标号的循环操作

public class ForForDemo10 {
    public static void main(String[] args) {
        for (int i = 1; i <= 5; i++) {      //外循环, 控制行.    i的值: 1,   
            for (int j = 1; j <= 5 ; j++) { //内循环, 控制列.    j的值: 1,2,3(整个循环结束)
                if (j == 3) {
                    break;   //这个break, 是用来结束哪个循环呢? 
                }
                System.out.print("*");
            }
            System.out.println();
        }
    }
}

上述的代码, 打印结果是一个5行2列的矩形星星图案, 而我的需求是获取一个1行2列的星星图案, 这就意味着, 上述代码中的break, 只要能直接结束外循环即可.
实际开发中, 为了方便我们操作循环嵌套中的指定循环, 就需要用到带标号的循环操作了.

格式
A: for(初始化条件; 判断条件; 控制条件) {     //外循环
    B: for(初始化条件; 判断条件; 控制条件) { //内循环
        循环体;
    }
}

案例一 : break用法

优化上述的代码, 改为打印一个1行2列的星星图案

public class ForForDemo10 {
    public static void main(String[] args) {
        A: for (int i = 1; i <= 5; i++) {      //外循环, 控制行.
            B: for (int j = 1; j <= 5 ; j++) { //内循环, 控制列.
                if (j == 3) {
                    break A;   //这个break, 是用来结束哪个循环呢?
                }
                System.out.print("*");
            }
            System.out.println();
        }
    }
}

案例二: continue用法

打印1~100之间所有的质数, 并按照3个一行的形式进行输出.

public class ForForDemo10 {
    public static void main(String[] args) {
        //打印1~100之间所有的质数, 并按照3个一行的形式进行输出.
        //定义变量, 用来记录1-100之间的 质数个数.
        int count = 0;
        //定义变量, 用来记录一行打印几个数.
        int flag = 3;
        a: for (int i = 2; i < 100; i++) {
            for (int j = 2; j < i ; j++) {
                if (i % j == 0) {
                    //走到这里, 说明i不是质数.
                    continue a;
                }
            }
            System.out.print(i + (++count % flag == 0 ? "\r\n" : "\t"));
        }
    }
}

4.生成随机数

  • Random类似Scanner,也是Java提供好的API(Application Programming Interface),内部提供了产生随机数的功能.

1.导入包

import java.util.Random;

2.创建随机数Random对象.

Random r = new Random();

3.调用方法, 产生随机数

int num = r.nextInt(10); //小括号中可以传入任意的正整数
double num = r.nextDouble();  // [0, 1.0)之间的任意小数
boolean num = r.nextBoolean(10); // 生成均等的布尔值
r.setSeed()
public void setSeed(long seed)

该方法的作用是重新设置Random对象中的种子数。
设置完种子数以后的Random对象和相同种子数使用
new关键字创建出的Random对象相同。
随机种子案例:
public class RandomDemo08 {
    public static void main(String[] args) {
        Random random = new Random(666);
//        Random random = new Random(666);
        random.setSeed(666);
        for (int i = 0; i <10 ; i++) {
            System.out.print(" " + random.nextInt(100));

        }
    }
}

解释:
1.小括号中写的整数是生成的随机数的上限.
2.例如: 小括号中写10 , 说明生成0~10之间的随机数, 包含0, 但是不包含10, 即: 包左不包右.
3.小括号中必须传入正整数, 否则会报IllegalArgumentException(非法参数异常).

数组的定义

方式一
  • 格式一:
数组存储的数据类型[] 数组名字;
String[] str;
  • 方式二
    格式:
数组存储的数据类型 数组名字[];
   String str2[];

数组的动态初始化

  • 格式:
 数组存储的数据类型[] 数组名字 = new 数组存储的数据类型[长度];
       int[] arr = new int[5];

注意:数组有定长特性,长度一旦指定,不可更改。

数组的静态初始化

//标准格式:
数组存储的数据类型[] 数组名字 = new 数组存储的数据类型[]{值1,值2,值3,}
        int[] arr2 = new int[]{1,3,5,7,9};
  //简写形式:
数据类型[] 数组名 = {元素1,元素2,元素3...};
        int[] arr3 = {1, 4, 6, 8};

数组的访问

格式:

数组名[索引]
System.out.println(arr[2]);
  • 长度属性, 数组名.length 表示数组中元素的个数;
  • 数组的最大索引值为数组名.length-1;

索引访问数组中的元素:

  • 数组名[索引]=数值,为数组中的元素赋值
  • 变量=数组名[索引],获取出数组中的元素
public static void main(String[] args) {
    //定义存储int类型数组,赋值元素1,2,3,4,5
    int[] arr = {1,2,3,4,5};
    //为0索引元素赋值为6
    arr[0] = 6;
    //获取数组0索引上的元素
    int i = arr[0];
    System.out.println(i);
    //直接输出数组0索引元素
    System.out.println(arr[0]);
  //数组的遍历,一个一个取出来
        for (int i = 0; i < arr.length ; i++) {
            System.out.println(arr[i]);
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 官网 中文版本 好的网站 Content-type: text/htmlBASH Section: User ...
    不排版阅读 4,725评论 0 5
  • 第四天 数组【悟空教程】 第04天 Java基础 第1章数组 1.1数组概念 软件的基本功能是处理数据,而在处理数...
    Java帮帮阅读 1,683评论 0 9
  • 概要 64学时 3.5学分 章节安排 电子商务网站概况 HTML5+CSS3 JavaScript Node 电子...
    阿啊阿吖丁阅读 9,877评论 0 3
  • Comment your JavaScript Code JavaScript中的注释方式有以下两种: 使用 //...
    归云丶阅读 1,204评论 0 0
  • 1 顺序语句 语句:使用分号分隔的代码称作为一个语句。 注意:没有写任何代码只是一个分号的时候,也是一条语句,...
    哈哈哎呦喂阅读 480评论 0 0

友情链接更多精彩内容