• 循环语句


    1.for循环语句

      1.1 for循环结构

    特征:重复做某件事情,具有明确的开始和停止标志

    循环结构的组成:

    初始化语句:用于表示循环开启时的起始状态,简单的说就是循环开始的时候什么样

    条件判断语句:用于表示循环反复执行的条件,简单的说就是判断循环能否能一直执行下去

    循环体语句:用于表示循环反复执行的内容,简答的说就是循环反复执行的事情

    条件控制语句:用于表示循环执行中每次变化的内容,简单的说就是控制循环是否能执行下去

    循环结构对应的语法:

    初始化语句:这里可以是一条或多条语句,这些玉奴可以完成一些初始化操作

    条件判断语句:这里使用一个结果值为boolean类型的表达式,这个表达式决定是否执行循体。例如:a<3

    循环体语句:这里可以是任意语句,这些语句将反复执行

    条件控制语句:这里通常是使用一条语句来改变变量的值,从而的达到控制循环是否继续向下执行的效果。常见i++,i--这样的操作。

      1.2 for循环结构格式

    格式:
    for(初始化语句;判断条件语句;条件控制语句){
        循环体语句;
    }

    执行流程:

    ①执行初始化语句

    ②执行条件判断语句,看其他结果是true还说false

        如果是false,循环结束

        如果是true,继续执行

    ③执行循环体语句

    ④执行条件控制语句

    ⑤回到②继续

    演示代码:

    package com.scxh.day01;
    
    public class Demo01For {
        public static void main(String[] args) {
            //要求在控制台输出五次“HelloWorld”
            System.out.println("HelloWorld");
            System.out.println("HelloWorld");
            System.out.println("HelloWorld");
            System.out.println("HelloWorld");
            System.out.println("HelloWorld");
            System.out.println("--------------");
    
            //循环改进
            for (int i=1; i<=5; i++){
                System.out.println("HelloWorld");
            }
    
        }
    }

    输出结果:

    2.while循环语句

    2.1while循环语句基本格式

    基本格式:
    while(条件判断语句){
        循环体语句;
    }
    完整格式:
    初始化语句;
    while(条件判断语句){
        循环体语句;
        条件控制语句;
    }

    执行流程:

    ① 执行初始化语句

    ②执行条件判断语句,看其他结果是true还说false

        如果是false,循环结束

        如果是true,继续执行

    ③执行循环体语句

    ④执行条件控制语句

    ⑤回到②继续

    代码演示:

    package com.scxh.day01;
    
    public class Demo01While {
        public static void main(String[] args) {
            //需求:在控制台输出五次“HelloWorld”
            int i = 1;
            while (i<=5){
                System.out.println("HelloWorld");
                i++;
            }
        }
    }

    3.do…while循环语句

    3.1

    基本格式:
    do{
        循环体语句;
    }while(条件判断语句);
    完整格式:
    初始化语句;
    do{
        循环体语句;
        条件控制语句;
    }while(条件判断语句);

    执行流程:

    ① 执行初始化语句

    ②执行循环体语句

    ③执行条件控制语句

    ④执行条件判断语句,看其他结果是true还说false

        如果是false,循环结束

        如果是true,继续执行

    ⑤回到②继续

    演示代码:

    package com.scxh.day01;
    
    public class Demo01DoWhile {
        public static void main(String[] args) {
            //需求:在控制台输出五次“HelloWorld”
            int i = 1;
            do {
                System.out.println("HelloWorld");
                i++;
            }while (i<=5);
        }
    }

    拓展:死循环

            //死循环
            for (;;){
                System.out.println("for");
            }
             
        
            while (true){
                System.out.println("while");
            }
         
            do {
                System.out.println("do…while");
            }while (true);

    3.2 三种循环的区别

    三种循环的区别:

    • for循环和while循环先判断条件是否成成立,然后决定是否执行循环体(先判断后执行)
    • do…whill循环先执行一次循环体,然后判断条件是否成立,是否继续执行循环体(先执行后判断)

    三种循环的区别:

    • 条件控制语句所控制的自增变量,因为归属for循环的语法结构中,在for循环结束后,就不能再次被访问到了
    • 条件控制语句所控制的自增变量,对于while循环来说不归属其语法结构中,在while循环结束后,该变量还可以继续使用。

    三种循环的区别:

    for (;;){ }

    while (true){ }

    do { }while (true);

    while的死循环格式是最常用的

    命令提示符窗口中Ctrl+C可以结束死循环

    4.跳转控制语句

    4.1 跳转控制语句概述

    • continue 用在循环中,基于条件控制,跳过某次循环体内容的执行,继续下一次的执行
    • break      用在循环中,基于条件控制,终止循环体内容的执行,也就是说结束当前的整个循环

    代码演示:

    package com.scxh.day01;
    
    public class Demo01Control {
        public static void main(String[] args) {
            for (int i = 1; i<=5; i++){
                if (i%2 == 0){
                    continue;
    //                break;
                }
                if (i%2 == 0){
    //                continue;
                    break;
                }
                System.out.println(i);
            }
    
        }
    }

    5. 循环嵌套

    5.1 循环嵌套概述

    语句结构:

    • 顺序语句  以分号结尾,表示一句话的结束
    • 分支语句     一对大括号表示if的整体结构,整体描述一个完整的if语句

             一对大括号表示switch的整体结构,整体描述一个完整的switch语句

    • 循环语句  一对大括号表示for的整体结构,整体描述一个完整的for语句

               一对大括号表示while的整体结构,整体描述一个完整的while语句

             do...while以分号结尾,整体描述一个完整的do...while语句

    任何语句对外都可以看成是一句话,一句代码

    分支语句中包含分支语句成为分支嵌套

    循环语句中包含循环语句成为循环嵌套

     

     代码演示:

    package com.scxh.day01;
    
    /*
        循环嵌套:
            循环语句中包含循环语句
        需求:
            在控制台输出一天的小时和分钟
            分钟和小时范围:
                分钟: 0 <= minute < 60
                小时: 0 <= hour < 24
     */
    public class Demo01ForFor {
        public static void main(String[] args) {
            /*
            System.out.println("0时0分");
            System.out.println("0时1分");
            System.out.println("0时2分");
            System.out.println("0时3分");
            System.out.println("---------");
            System.out.println("1时0分");
            System.out.println("1时1分");
            System.out.println("1时2分");
            System.out.println("1时3分");
            System.out.println("---------");
            System.out.println("2时0分");
            System.out.println("2时1分");
            System.out.println("2时2分");
            System.out.println("2时3分");
             */
            /*
            //循环改进
            for (int minute=0; minute<4; minute++){
                System.out.println("0时"+ minute +"分");
            }
            System.out.println("---------");
    
            for (int minute=0; minute<4; minute++){
                System.out.println("1时"+ minute +"分");
            }
            System.out.println("---------");
    
            for (int minute=0; minute<4; minute++){
                System.out.println("2时"+ minute +"分");
            }
            System.out.println("---------");
             */
            //外循环控制小时的范围,内循环控制分钟的范围
            for (int hour=0; hour<24; hour++){
                for (int minute=0; minute<60; minute++){
                    System.out.println(hour + "时"+ minute +"分");
                }
                System.out.println("----------");
            }
    
    
        }
    }

    显示结果:

    6. Random

    6.1 Random的作用和使用步骤

    作用: 用于产生一个随机数

    使用步骤:

    ① 导包

    import java.util.Random;
    //导包动作必须出现在类定义的上方

    ② 创建对象

    Random r = new Random();
    // 上面这个格式里面,r是变量名,可以改变,其他的都不允许改变

    ③获取随机数

    int number = r.nextInt(10); // 获取数据的范围:[0,10)包括0,不包括10
    // 上面这个格式里面,number是变量名,可以变,数字10可以变。其他的都不允许变。

    代码演示:

    package com.scxh.day01;
    
    import java.util.Random;
    
    public class Demo01Random {
        public static void main(String[] args) {
            Random r = new Random();
    //        int number = r.nextInt(10); // 获取数据的范围:[0,10)包括0,不包括10
    //        System.out.println(number);
    
            // 用循环获取十个随机数
            for(int i=0; i<10; i++ ){
                int number = r.nextInt(10); // 获取数据的范围:[0,10)包括0,不包括10
                System.out.println("number:" + number);
            }
            //用随机数获取一个1-100之间的随机数
            int x = r.nextInt(100) + 1;
            System.out.println(x);
    
        }
    }

    演示结果:

     案例:猜数字

    需求:系统自动生成一个1-100之间的数字,实用程序实现猜出这个数字是多少?

       当猜错的时候根据不同情况给出相应的提示。

    •  如果猜的数字比真实数字大,提示你猜的数据大了。
    •  如果猜的数字比真实数字小,提示你猜的数据小了。
    • 如果猜的数字与真实数字相等,提示你恭喜你猜中了。

    分析:

    ① 要完成猜数字的游戏,首先需要有一个要猜的数字,使用随机数生成该数字,范围1-100

    Random r = new Random();
    int number = r.nextInt(100)+1;

    ② 因为无法预知几次能够猜中,因此猜数字这个操作应该是反复进行的,需要使用循环,而while循环通常用于描述未知循环次数的循环。

    while(条件){}

    ③ 使用程序实现猜数字,每次均要输入猜测的数值,需要使用键盘的录入功能实现

    Scanner sc = new Scanner(System.in);
    int guessNumber = sc.nextInt();

    ④ 比较输入的数字和系统产生的数据,需要用分支语句,这里使用if…else…if格式来实现,根据不同情况进行猜测结果显示,当猜中后使用break结束循环即可。

    if(条件:比要猜的数字大){
    }else if(条件:比要猜的数字小){
    }else{ break; }

    代码演示:

    package com.scxh.day01;
    
    import java.util.Random;
    import java.util.Scanner;
    
    /*
    需求:系统自动生成一个1-100之间的数字,实用程序实现猜出这个数字是多少?
        当猜错的时候根据不同情况给出相应的提示。
         1.如果猜的数字比真实数字大,提示你猜的数据大了。
         2.如果猜的数字比真实数字小,提示你猜的数据小了。
         3.如果猜的数字与真实数字相等,提示你恭喜你猜中了。
     */
    public class Test01Random {
        public static void main(String[] args) {
            // 要完成猜数字的游戏,首先需要有一个要猜的数字,使用随机数生成该数字,范围1-100
            Random r = new Random();
            int numbear = r.nextInt(100)+1;
    
            while (true){
                // 使用程序实现猜数字,每次均要输入猜测的数值,需要使用键盘的录入功能实现
                Scanner sc = new Scanner(System.in);
    
                System.out.println("请输入你想要输入的数字:");
                int guessNumber = sc.nextInt();
    
                // 比较输入的数字和系统产生的数据,需要用分支语句,这里使用if…else…if格式来实现,根据不同情况进行猜测结果显示,当猜中后使用break结束循环即可。
                if(guessNumber > numbear){
                    System.out.println("你猜的数字"+ guessNumber +"大了");
                }else if (guessNumber < numbear){
                    System.out.println("你猜的数字"+ guessNumber +"小了");
                }else {
                    System.out.println("恭喜你猜中了");
                    break;
                }
            }
    
        }
    }

    演示结果:

  • 相关阅读:
    Centos7安装Python3的方法
    word2vec原理(二) 基于Hierarchical Softmax的模型
    word2vec原理(一) CBOW与Skip-Gram模型基础
    爬虫的危害有多大
    python线程池实现
    进程和线程、协程的区别
    程序的编译与解释之间的区别
    【python3】如何建立爬虫代理ip池
    可能是史上最全的机器学习和Python(包括数学)速查表
    python 元类
  • 原文地址:https://www.cnblogs.com/ls011218/p/15848012.html
Copyright © 2020-2023  润新知