Java学习 (12)Java流程控制篇(03)循环结构

While 循环

  • *while 是最基本的循环结构,结构为
public static void main(String[] args) {

    while (布尔表达式){
       //循环内容;
    }
}
  • *循环条件一直为 true 就会造成无限循环【死循环】,我们正常的业务编程中应该尽量避免死循环。会影响程序性能或者造成程序卡死奔溃!
public static void main(String[] args) {
    //死循环
    while (true){
        //等待客户端连接
        //定时检查。。。
    }
}
public static void main(String[] args) {
    //计算1+2+3+...+100=?

    int i = 0;
    int sum = 0;

    while (i

DO While 结构

  • 对于while 语句而言,如果不满足条件,则不能进入循环。但有时候我们需要即使不满足条件,也至少执行一次
  • *Do while 循环和While 循环相似,不同的是,Do while 循环至少会执行一次
do {
        //代码语句
}while (布尔表达式);
public static void main(String[] args) {

    int i = 0;
    int sum = 0;

    do {
        sum = sum +i;
        i++;
    }while (i
  • While 先判断后执行,Do while 是先执行后判断!
  • Do while 总是保证循环体会被至少执行一次!这是他们的主要差别
  • *问题实例
public static void main(String[] args) {
    int a = 0;
    while (a < 0){
        System.out.println(a);
        a++;
    }
    System.out.println("------------------");
    do{
        System.out.println(a);
        a++;
    }while (a

For 循环

  • 虽然所有循环结构都可以用 While 或者 Do while 表示,但 Java 提供了另一种语句——for 循环,使一些循环结构变得更加简单
  • for 循环语句是支持迭代的一种通用结构,是最有效、最灵活的循环结构
  • *fo r循环执行的次数是在执行前就确定的。语法格式如下
for (初始化;布尔表达式;迭代){
    //代码语句
}
  • 最先执行初始化步骤。可以声明一种类型,但可初始化一个或多个循环控制变量,也可以是空语句
  • 然后,检测布尔表达式的值。如果为 true,循环体被执行。如果为false,循环终止,开始执行循环体后面的语句。执行一次循环后,更新循环控制变量(迭代因子控制循环变量的增减)
  • *再次检测布尔表达式。循环执行上面的过程
public static void main(String[] args) {
    int a = 0;//初始化条件

    while (a
public static void main(String[] args) {
    int oddSum = 0;
    int evenSum = 0;

    for (int i = 0; i
public static void main(String[] args) {

    for (int i = 0; i
//使用双层for循环实现九九乘法表的打印
//双层for循环顺序:先里再外
public static void main(String[] args) {
    //1.使用外层for循环用于控制打印的行数
    for (int j = 1; j

增强 For 循环

  • Java5 引入了一种主要用于数组或集合的增强型 for 循环
  • *Java增强 for 循环语法格式如下:
//声明语句:声明新的局部变量,该变量的类型必须和数组元素的类型匹配。其作用域限定在循环语句块,其值与此时数组元素的值相等。
//表达式:表达式是要访问的数组名,或者是返回值为数组的方法。

for (声明语句:表达式)
{
    //代码语句
}
public static void main(String[] args) {
    int[] numbers = {10,20,30,40,50};//定义了一个数组
    //for 循环
    for (int i = 0;i

参考视频(狂神说Java)

Original: https://www.cnblogs.com/fengye0518/p/16557749.html
Author: 落枫叶子
Title: Java学习 (12)Java流程控制篇(03)循环结构

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/589854/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Spring-Boot新项目启动总是提示:Process-finished-with-exit-code-0

    可能原因 1.端口冲突检查端口号 2.缺少 web 启动依赖 org.springframework.boot spring-boot-starter-web 我的是第 2 个原因…

    Java 2023年6月5日
    094
  • 循环链表(约瑟夫环)思路及实现

    单链表的尾节点指向首节点,即可构成循环链表 约瑟夫问题:有 N 个人围成一圈,每个人都有一个编号,编号由入圈的顺序决定,第一个入圈的人编号为 1,最后一个为 N,从第 K (1 O…

    Java 2023年6月16日
    077
  • Redis常见面试题

    一.Redis 支持的数据类型有哪些? 基本数据类型 String:存放的是k-v键值对。如:set k v; 使用场景:常规计数,缓存等 List:有序,可重复。如:lpush …

    Java 2023年6月7日
    074
  • scrapy框架之生成存储文件json,xml、csv文件

    以起点小说网举例子网址https://www.qidian.com/rank/yuepiao/默认大家已经生成好scrapy项目了,如果不会请参考我之前的文章scrapy框架之创建…

    Java 2023年6月5日
    094
  • 给 zsh 自定义命令添加参数自动补全

    有时我会自定义一些 zsh 命令,以便提升某些高频操作的效率。本文记录我给一个自定义命令添加参数自动补全的方法。 场景 我自定义了一个 zsh 命令 gmt,执行 gmt <…

    Java 2023年6月5日
    098
  • 完整SpringBoot Cache整合redis缓存(二)

    缓存注解概念 名称 解释 Cache 缓存接口,定义缓存操作。实现有:RedisCache、EhCacheCache、ConcurrentMapCache等 CacheManage…

    Java 2023年6月7日
    084
  • java 创建对象的几种方式

    1.用new语句创建对象 2.运用反射手段 3.调用对象的clone()方法 4.运用反序列化手段 代码 //new Student student = new Student()…

    Java 2023年5月29日
    073
  • 在QT中添加zeromq DLL库

    1)下载地址:http://zeromq.org/distro:microsoft-windows 2)按照说明。获取相应的版本,并安装。 3 ) 安装目录中,include文件集…

    Java 2023年5月30日
    0118
  • Java中的System.nano()很慢

    System.nano()调用耗时450 nano,超级慢,比new Object()的操作慢100倍。 经一群无聊好事者查证,System.nanoTime()在linux下的实…

    Java 2023年5月29日
    091
  • 机械师实时调度示例(I)-实时规划

    OptaPlanner创办人Geoffrey De Smet及其团队,在Red Hat 技术峰会上主题会场上,演示了一个通过OptaPlanner实现实时规划与调度的示例。Geof…

    Java 2023年6月16日
    091
  • Java学习笔记

    本文主要记录了自己Java学习过程中的笔记,里面有很多Map、List、Set底层的源码解读,且知识点很全面,囊括从基本语法到IO编程、网络编程、并发编程以及反射等相关基础知识。此…

    Java 2023年6月16日
    069
  • RabbitMQ实现订单超时案例

    人间清醒 用戶在购买商品的时候通常会预购然后没付款,没付款的订单通常会被设置一个自动超时时间如30分钟后超时,所以我们要在订单到30分钟后自动将超时的订单取消。 DelayQueu…

    Java 2023年6月5日
    083
  • day02-用户登录功能实现

    多用户即时通讯系统02 4.编码实现01 4.1功能实现-用户登录 4.1.1功能说明 因为还没有学习数据库,我们人为规定 用户名/id = 100,密码为 123456 就可以登…

    Java 2023年6月15日
    077
  • Nginx核心知识100讲学习笔记(陶辉)详解HTTP模块(详解11阶段)

    一、server_name指令 1、指令后可跟多个域名。第一个是主域名 bash;gutter:true; Syntax server_name_in_redirect on | …

    Java 2023年5月30日
    077
  • Java SPI机制,你了解过吗?

    Life moves pretty fast,if you don’t stop and look around once in a while,you will mi…

    Java 2023年6月5日
    0107
  • Java8之stream流的分组排序

    关于Java8的stream流,这里不讲groupBy分组,也不讲sort排序,这些都是很基础的用法,可以自行百度。 这里说一种业务场景,对于分组后的map,根据value对key…

    Java 2023年6月9日
    072
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球