Java核心--流程控制之循环结构


前言

在这里插入图片描述
for循环和while循环应用于random的使用


一、循环结构的概念和分类

1.循环结构的概念

循环,即事物周而复始的变化。
循环结构,使一部分代码按照次数或一定的条件反复执行的一种代码结构。

2.循环结构的分类

  • for循环
  • while循环
  • do…while循环

二、for循环

1.for循环语句

  • 格式:
    for(初始化语句;判断条件语句;控制条件语句){
    //循环体
    }
  • 执行流程
    在这里插入图片描述

2.for循环案例1

需求:在控制台输出5次HelloWorld
代码演示

package cn.itcast.demo;

/**
 * for循环
 *      格式:
 *          for(初始化语句:判断条件语句;控制条件语句){
 *              循环体
 *          }
 *      执行流程:
 *          第一次循环:先执行初始化语句,然后执行判断条件语句
 *                      如果条件不成立:循环结束。
 *                      如果条件成立:执行循环体,然后执行控制条件语句,此时,第一次循环执行结束。
 *          第二次循环:执行判断条件语句
 *                      如果条件不成立:循环结束。
 *                      如果条件成立:执行循环体,然后执行控制条件语句,此时,第一次循环执行结束。
 *          依次类推……
 */
public class ForDemo1 {
    public static void main(String[] args) {
        //需求:打印5次HelloWorld
        for(int i =1;i<=5;i++){
            System.out.println("HelloWorld");
        }
    }
}

3.for循环案例2

需求

  • 在控制台输出1-5
  • 在控制台输出5-1

分析

  • 用原始方式实现输出1-5
  • 用for循环实现输出1-5
  • 用for循环实现输出5-1

代码演示

package cn.itcast.demo;

public class ForDemo2 {
    public static void main(String[] args) {
        //需求1:打印1~5之间的数字
        //方式一:传统做法
        System.out.println(1);
        System.out.println(2);
        System.out.println(3);
        System.out.println(4);
        System.out.println(5);
        System.out.println("---------------");

        //通过观察上述的代码,我们发现:输出语句的次数是固定的,只是输出语句里边的内容在发生变化
        //针对于这种情况,就可以采用for循环来解决
        //方式二:采用for循环
        for(int i= 1;i<=5;i++){
            System.out.println(i);
        }
        System.out.println("---------------");
        //需求2:打印5~1之间的数字
        for(int i=5;i>=1;i--){
            System.out.println(i);
        }
        System.out.println("---------------");
    }
}

4.for循环案例3(累加器思想)

需求:计算1~5之间的数据之和,并输出总和
分析

  1. 定义一个求和变量sum,初始化值是0

  2. 用for循环获取1~5的数据

  3. 把每一次获取到的数据累加到求和变量sum
    sum = sum + x;或者sum += x;

  4. 输出求和变量。

代码演示

package cn.itcast.demo;

public class ForDemo3 {
    public static void main(String[] args) {
        //需求:计算1~5之间的所有数据之和。
        //1.定义求和变量sum。
        int sum=0;

        //2.通过for循环获取1~5之间的数据
        for (int i=1;i<=5;i++){
            // i记录的就是:1~5之间所有的数字
            //3.把获取到的数据依次累加给变量sum
            //sum = sum + i;
            sum +=i;
        }
        //4.打印结果
        System.out.println(sum);
    }
}

5.for循环案例4(累加思想)

需求:求出1~100之间偶数和
分析:

  1. 定义一个求和变量sum,初始化值是0;
  2. 获取1~100之间的数,用for循环实现
  3. 判断每一个数是否为偶数,是就累加,否则不做操作对2取余等于0,则为偶数x%2==0;
  4. for循环结束,输出求和变量的值

代码演示

package cn.itcast.demo;

public class ForDemo4 {
    public static void main(String[] args) {
        //需求:计算1~100之间的所有偶数和
        //1.定义一个求和变量sum。
        int sum =0;

        //2.获取1~100之间所有的数据
        for(int i =1;i<=100;i++){
            //循环体
            //i的自己哦其实就是1~100之间的数字,只要判断i是否是偶数即可
            //3.判断当前获取到的数据是否为偶数,是就累加
            if(i%2==0){
                //能走到这里,说明i是偶数,累加即可
                sum+=i;
            }
        }
        //4.打印结果
        System.out.println("sum:"+sum);
    }
}

6.for循环案例5

需求:在控制台输出所有的“水仙花数”;
分析:

  • 水仙花数:所谓的水仙花数是指一个三位数,其各位数字的立方和等于该数本身
  • 举例:153是一个水仙花数:1*1*1+5*5*5+3*3*3=1+125+27=153

步骤:

  • 获取所有的三位数,即100~1000之间的数
  • 获取每一个三位数的个数,十位,百位
    个位:153%10 = 3
    十位:153/10%10 = 5
    百位:153/10/10%10 = 1
  • 拿个位,十位,百位的立方和与该数本身进行比较,如果相等,则在控制台打印该数

代码演示

package cn.itcast.demo;

public class ForDemo5 {
    public static void main(String[] args) {
        /*
        需求:打印所有的水仙花数
            水仙花解释:指的是一位三位数,其各位数字的立方和等于他本身,例如
            1*1*1+5*5*5+3*3*3=1+125+27=153
         */
        //1.通过for循环,获取所有三位数
        for(int i =100;i<1000;i++){
            //i表示就是所有的三位数
            //2.获取该数据的个位、十位、百位数字
            int ge=i%10;
            int shi=i/10%10;
            int bai=i/10/10%10;

            //3.判断该数字是否是水仙花数,如果是,直接打印即可
            if(ge*ge*ge+shi*shi*shi+bai*bai*bai==i){
                //能走到这里,说明:是水仙花数
                System.out.println(i);
            }
        }
    }
}

7.for循环案例6(计数器思想)

需求:统计所有的“水仙花数”的个数
分析:

  • 定义统计变量count,即计数器,初始化值为0
  • 获取所有的三位数,即100~1000之间的数
  • 判断每一个三位数是否为水仙花数,是则count自增1,count++
  • 循环结束,输出计数器count的值
package cn.itcast.demo;

public class ForDemo6 {
    public static void main(String[] args) {
        //需求:打印所有的水仙花数的个数
        //1.定义一个计数器,用来记录水仙花数的个数
        int count = 0;
        //2.获取到所有的三位数
        for(int i=100;i<1000;i++){
            //i记录的就是所有的三位数
            //3.获取到该数字的个位,十位,百位数字
            int ge=i%10;
            int shi=i/10%10;
            int bai=i/10/10%10;

            //4.判断该数字是否是水仙花数,如果是,计数器自增1
            if(ge*ge*ge+shi*shi*shi+bai*bai*bai==i){
                //能走到这里,说明i是一个水仙花数
                //count = count + 1;这三种方法均可
                //count++;
                ++count;
            }
        }
        //5.打印计数器的结果即可
        System.out.println("count:"+count);
    }
}

三、while循环

1.while循环语句格式

  • 格式:
    初始化语句;
    while(判断条件语句){
    循环体语句;
    控制条件语句;
    }
  • 注意事项:
    初始化语句可以省略
    控制条件语句可以省略
  • 执行流程
    在这里插入图片描述

2.while循环案例1

需求:使用while循环在控制台输出5次“HelloWorld”
分析:

  • 用for循环实现输出“HelloWorld”
  • 用while循环实现输出“HelloWorld”
package cn.itcast.demo;

/**
 * while循环的格式:
 *      初始化语句:
 *      while(判断条件语句){
 *          循环体语句;
 *          控制条件语句;
 *      }
 */
public class WhileDemo1 {
    public static void main(String[] args) {
        //需求:打印5次“HelloWorld”
        //方式一:通过for循环实现
        for(int i =1;i<=5;i++){
            System.out.println("HelloWorld");
        }
        System.out.println("--------------");

        //方式二:通过while循环实现
        //初始化语句
        int i =1;
        //判断条件语句
        while(i<=5){
            //循环体语句
            System.out.println("HelloWorld");
            //控制条件语句
            i++;
        }
    }
}

3.while循环案例2

需求:求1~100之间的数据和
分析:

  • 定义求和变量sum,初始化值为0
  • 使用while循环获取1~100之间的数据
  • 将每个数据累加到sum变量上
  • 循环结束,输出sum的值
package cn.itcast.demo;

public class WhileDemo2 {
    public static void main(String[] args) {
        //1.需求:计算1~100之间的所有数据之和
        //1.定义一个求和变量sum
        int sum =0;

        //2.通过while循环,获取1~100之间所有的数据‘
        //初始化语句
        int a =1;
        //判断语句
        while(a<=100){
            //循环体语句
            //3.将获取到的数据累加给变量sum
            sum+=a;
            //控制条件语句
            a++;
        }
        //4,将sum的结果打印到控制台上
        System.out.println("sum:"+sum);
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Java核心面试知识整理(架构师)是一份非常有价值的Java面试指南,此指南对于那些准备进行Java工作面试的候选者来说非常重要。该指南详细介绍了Java技术的基本概念,包括多线程、面向对象编程、JVM以及其他与Java语言相关的技术。除此之外,该指南还列出了一系列与Java技术相关的最新面试题目,并通过详细的解题思路和示例代码展示了如何解决这些问题。这对于那些想要通过Java面试的候选者来说非常有帮助。 此外,该指南还介绍了Java SE、Java EE、Spring、Hibernate等重要的框架和技术的概要以及相应的面试题目。候选人可以通过这些问题详细了解这些技术的实际应用,并为面试做好充分的准备。 总之,Java核心面试知识整理(架构师)是一份非常有用的指南,对于那些想在Java领域取得成功并通过技术面试的人来说非常有帮助。无论现在你是一个初学Java的新手,还是一位有经验的开发者或工程师,这份指南都值得一读。 ### 回答2: 《Java核心面试知识整理(架构师)》是一份重要的面试资料,涵盖了Java开发中的核心知识点和面试考察的难点,可以帮助应聘者更好地准备面试。 该资料主要分为八个章节,分别是Java基础知识、集合框架、多线程、JVM、网络编程、数据库、分布式系统和框架技术。在每个章节中,都涵盖了该领域中的重要概念、常见的面试题和优秀的回答方法,可以帮助应聘者在面试中更加从容自信地回答问题。 其中,Java基础知识和集合框架是面试中最常考察的部分,主要考察应聘者的基础扎实度和掌握程度。多线程和JVM是Java开发中的难点,需要求职者深入理解并掌握其原理,才能在面试中获得高分。网络编程和数据库相关问题则是针对应聘者的项目经验和实践经验,需要应聘者结合自己的经验和项目实践,进行深入的思考和总结。分布式系统和框架技术则是考察应聘者对当前技术潮流和趋势的了解程度,需要应聘者关注行业动态和进行充分的技术积累。 总的来说,《Java核心面试知识整理(架构师)》是一份全面、权威且实用的Java面试资料,对于想要深入了解Java开发技术和成功求职的人来说,具有非常重要的参考价值。 ### 回答3: 这份《Java核心面试知识整理(架构师版)》的文档总结了Java领域中架构师的核心面试知识。文档涵盖了Java基础、集合、多线程、JVM、设计模式、分布式微服务等方面的知识点。 在Java基础方面,文档详细介绍了Java语言的基础类型、运算符、循环结构流程控制语句以及面向对象的特性和原则。而在集合方面,文档涵盖了Java中的各种集合类型及其特点,如List、Map、Set等。此外,文档还详细讲解了多线程的基本概念和Java中的线程安全问题,包括锁机制、线程池等。 在JVM方面,文档深入讲解了Java程序的运行原理和内存管理机制,详细分析了垃圾回收算法和优化策略,并解释了如何进行JVM性能调优。 文档还涉及了常用的设计模式及其应用场景,如单例模式、工厂模式、观察者模式等。此外,分布式、微服务等一系列架构方面的知识也被全方位地介绍和讲解。 总之,这份文档是Java架构师在面试时必备的知识点整理手册,对于正在准备面试的Java架构师和Java程序员来说具有非常重要的参考价值。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值