循环结构的学习

news2024/11/24 11:56:24

循环结构

文章目录

    • 为什么要学习循环
    • while循环
    • dowhile循环
    • 偶数之和
    • 断点调试
    • 购物结算
    • 循环的选择
    • 类名和全类名
    • 摄氏华氏对照表
    • for循环
    • for执行次序
    • 五门功课成绩
    • for的特殊写法
    • break和continue
    • 录入客户信息_continue使代码优雅
    • 小数的比较不能用==或!=

为什么要学习循环

在编写代码时,业务需求(项目要求)原地打转,符合条件结束循环。
马拉松 (操场

while循环

在这里插入图片描述

public class Demo01 {
    public static void main(String[] args) {
        /*
        while (条件) {
            循环的体(内容);
            更新条件;
        }
        1 +到 100,5050
         */
        int i = 1, sum = 0;
        while (i <= 100) {
            sum += i;
            i++;
        }
        System.out.println("和:" + sum);
    }
}

dowhile循环

在这里插入图片描述

public class Demo02 {
    public static void main(String[] args) {
        /*
        do {
            循环的体(内容);
            更新条件;
        } while(条件);
        1 +到 100,5050
         */
        int i = 1, sum = 0;
        do {
            sum += i;
            i++;
        } while (i <= 100);
        System.out.println("和:" + sum);
    }
}

偶数之和

学员操作一计算100以内的偶数之和
训练要点
while循环结构
程序调试
需求说明
编程实现: 计算100以内 (包括100) 的偶数之和设置断点并调试程序,观察每一次循环中变量值的变化

在这里插入图片描述

public class Demo03 {
    public static void main(String[] args) {
        int n = 1, sum = 0;
        while (n <= 100) {
            if (n % 2 == 0) sum += n;
            n++;
        }
        System.out.println("sum: " + sum);
    }
}

断点调试

在这里插入图片描述

购物结算

在这里插入图片描述

import java.util.Scanner;

public class Demo04 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("购物结算");
        System.out.println("请选择商品编号:");
        System.out.println("1.T恤  2.网球鞋 3.网球拍");

        String jx = "y";
        while (jx.equals("y")) {
            System.out.print("请输入商品编号:");
            int select = scanner.nextInt();
            switch (select) {
                case 1:
                    System.out.println("T恤 100元");
                    break;
                case 2:
                    System.out.println("网球鞋 200元");
                    break;
                case 3:
                    System.out.println("网球拍 300元");
                    break;
            }
            System.out.print("是否继续(y/n):");
            jx = scanner.next();
        }

        System.out.println("程序结束!");
    }
}

循环的选择

在这里插入图片描述

import java.util.Scanner;

public class Demo05 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("购物结算");
        System.out.println("请选择商品编号:");
        System.out.println("1.T恤  2.网球鞋 3.网球拍");

        String jx;
        do {
            System.out.print("请输入商品编号:");
            int select = scanner.nextInt();
            switch (select) {
                case 1:
                    System.out.println("T恤 100元");
                    break;
                case 2:
                    System.out.println("网球鞋 200元");
                    break;
                case 3:
                    System.out.println("网球拍 300元");
                    break;
            }
            System.out.print("是否继续(y/n):");
            jx = scanner.next();
        } while (jx.equals("y"));

        System.out.println("程序结束!");
    }
}

类名和全类名

在这里插入图片描述

摄氏华氏对照表

在这里插入图片描述

public class Demo06 {
    public static void main(String[] args) {
        /*
            使用do-while实现:输出 *摄氏温度 与 *华氏温度的对照表,要求它从摄氏温度0度到250度,每隔20度为一项,对照表中的 *条目 不超过10条。
            转换关系:华氏温度 = 摄氏温度 * 9 / 5.0 + 3
         */
        double huashidu, sheshidu = 0;
        int count = 0;
        do {
            huashidu = sheshidu * 9 / 5.0 + 32;
            System.out.println(sheshidu + " vs. " + huashidu);
            sheshidu += 20;
            count++;
        } while (sheshidu <= 250 && count <= 10);
    }
}

for循环

在这里插入图片描述

public class Demo07 {
    public static void main(String[] args) {
        /*
        1 +到 100,5050
        特点:循环次数固定下来的。建议使用for循环。
        for (声明初始化循环变量; 条件; 修改循环变量) {
            循环体;
        }
         */
        int sum = 0;
        for (int i=0; i<=100; i++) {
            sum += i;
        }
        System.out.println("和:" + sum);
    }
}

for执行次序

在这里插入图片描述

五门功课成绩

在这里插入图片描述

import java.util.Scanner;

public class Demo08 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("请输入姓名:");
        String name = scanner.next(); // 记录姓名
        int sum = 0; // 记录总成绩
        for (int i=1; i<=5; i++) {
            System.out.print("请输入5门功课的第" + i + "门的成绩:");
            sum += scanner.nextInt();
        }
        System.out.println(name + "的平均分是:" + sum / 5.0);
    }
}

for的特殊写法

在这里插入图片描述

public class Demo09 {
    public static void main(String[] args) {
        for (int i=0,j=6; i<=6; i++,j--) {
            System.out.println(i + "+" + j + "=" + 6);
        }
    }
}

break和continue

在这里插入图片描述

import java.util.Scanner;

public class Demo10 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int sum = 0;
        for (int i=1; i<=5; i++) {
            System.out.print("成绩:");
            int cj = scanner.nextInt();
            if (cj < 0) break; // 结束循环
        }

        System.out.println("最后");
    }
}

import java.util.Scanner;

public class Demo11 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int sum = 0;
        for (int i=1; i<=5; i++) {
            System.out.print("成绩:");
            int cj = scanner.nextInt();
            if (cj < 0) continue; // 忽略当次
            sum += cj;
        }

        System.out.println("和:" + sum);
    }
}

录入客户信息_continue使代码优雅

在这里插入图片描述

import java.util.Scanner;

public class Demo12 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("> 添加客户信息");
        for (int i=1; i<=3; i++) {
            System.out.print("会员号《4位》:");
            int id = scanner.nextInt();
            if (id >= 1000 && id <= 9999) { // 满足条件1
                System.out.print("生日《mm/dd》:");
                String birth = scanner.next();
                if (birth.length() == 5) { // 满足条件2
                    System.out.print("积分:");
                    int jifeng = scanner.nextInt();
                    if (jifeng >= 0) { // 满足条件3
                        System.out.println("会员信息是:\n" + id + "\t" + birth + "\t" + jifeng);
                    }
                }
            }
        }

        System.out.println("程序结束!");
    }
}

使用continue

import java.util.Scanner;

public class Demo13 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("> 添加客户信息");
        for (int i=1; i<=3; i++) {
            System.out.print("会员号《4位》:");
            int id = scanner.nextInt();
            if (id < 1000 || id > 9999) continue; // 过滤
            System.out.print("生日《mm/dd》:");
            String birth = scanner.next();
            if (birth.length() != 5) continue; // 过滤
            System.out.print("积分:");
            int jifeng = scanner.nextInt();
            if (jifeng < 0) continue; // 过滤
            System.out.println("会员信息是:\n" + id + "\t" + birth + "\t" + jifeng);
        }

        System.out.println("程序结束!");
    }
}

小数的比较不能用==或!=


import java.util.Scanner;

public class Demo14 {
    public static void main(String[] args) {
        final double JINDU = 0.00001;
        /*
        1. 录入一个小数1,小数2,小数3。
            判断小数1+小数2是否等于小数3?
            小数是模拟出来的数,近似值。无法用== !=进行比较的。
         */
        Scanner scanner = new Scanner(System.in);
        System.out.print("小数1:");
        double d1 = scanner.nextDouble();
        System.out.print("小数2:");
        double d2 = scanner.nextDouble();
        System.out.print("小数3:");
        double d3 = scanner.nextDouble();
        if (d1 + d2 <= d3+JINDU && d1 + d2 >= d3-JINDU) System.out.println("d1+d2==d3");
        else System.out.println("d1+d2!=d3");

        System.out.println("程序结束!");
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/856206.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

mysql死锁分析show engine innodb status

文章目录 1、show engine innodb status命令2、前置知识3、无符号数、有符号数4、innodb关于有符号数的规定5、为什么会有这个规定 1、show engine innodb status命令 最近在使用mysql的show engine innodb status命令分析死锁&#xff0c;发现了一个有意思的点。就是红框里圈…

【小梦C嘎嘎——启航篇】类和对象(中篇)

【小梦C嘎嘎——启航篇】类和对象&#xff08;中篇&#xff09;&#x1f60e; 前言&#x1f64c;类的6个默认成员函数构造函数析构函数拷贝构造函数拷贝构造函数的特性有哪些&#xff1f;既然编译器可以自动生成一个拷贝构造函数&#xff0c;为什么我们还要自己设计实现呢&…

python数据分析 期末测验,python数据分析基础题库

大家好&#xff0c;小编为大家解答python数据分析选择题题目的问题。很多人还不知道python数据分析题目和答案&#xff0c;现在让我们一起来看看吧&#xff01; 自测试卷 5 一、选择题 1 &#xff0e;下面关于 RFM 模型说法正确的是&#xff08; &#xff09;。 A &#xff0e;…

微信小程序(由浅到深)

文章目录 一. 项目基本配置1. 项目组成2. 常见的配置文件解析3. app.json全局的五大配置4.单个页面中的page配置5. App函数6.tabBar配置 二. 基本语法&#xff0c;事件&#xff0c;单位1. 语法2. 事件3. 单位 三. 数据响应式修改四 . 内置组件1. button2. image3. input4. 组件…

钓鱼攻击:相似域名识别及如何有效预防攻击

网络犯罪分子很乐意劫持目标公司或其供应商或业务合作伙伴的官方域名&#xff0c;但在攻击的早期阶段&#xff0c;他们通常没有这种选择。相反&#xff0c;在有针对性的攻击之前&#xff0c;他们会注册一个与受害组织的域名相似的域名 - 他们希望您不会发现其中的差异。此类技术…

opencv基础51-图像轮廓04-轮廓多种图形拟合讲解及示例

轮廓拟合&#xff08;Contour Fitting&#xff09;是指在图像处理中&#xff0c;通过一些数学模型或曲线拟合方法来近似描述图像中的轮廓。图像中的轮廓是指物体的边界&#xff0c;轮廓拟合可以用于提取、描述和分析物体的形状。 常用的轮廓拟合方法包括多项式拟合、贝塞尔曲线…

【刷题笔记8.9】LeetCode题目:两数相加

LeetCode题目2&#xff1a;两数相加 题目及描述 给你两个 非空 的链表&#xff0c;表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的&#xff0c;并且每个节点只能存储 一位 数字。 请你将两个数相加&#xff0c;并以相同形式返回一个表示和的链表。 你可以假设…

【uniapp】封装一个全局自定义的模态框

【需求描述】 在接口401处&#xff0c;需要实现全局提示并弹出自定义模态框的功能。考虑到uni-app内置的模态框和app原生提示框的自定义能力有限&#xff0c;我决定自行封装全局自定义的模态框&#xff0c;以此为应用程序提供更加统一且个性化的界面。 【效果图】 【封装】 主…

Ansible Playbook快速部署一主多从MySQL集群

部署目标&#xff1a; 1、快速部署一套一主两从的mysql集群 2、部署过程中支持交互式定义安装目录及监听端口号 部署清单目录结构&#xff1a; rootmaster:/opt/mysql# tree . . ├── group_vars │ └── all.yml ├── hosts ├── mysql.yml └── roles└── mys…

两个状态的马尔可夫链

手动推导如下公式。 证明&#xff1a; 首先将如下矩阵对角化&#xff1a; { 1 − a a b 1 − b } \begin {Bmatrix} 1-a & a \\ b & 1-b \end {Bmatrix} {1−ab​a1−b​} (1)求如下矩阵的特征值&#xff1a; { 1 − a a b 1 − b } { x 1 x 2 } λ { x 1 x 2 }…

Android Https

本质&#xff1a;在客户端和服务端使用非对称加密协商出一套对称密钥&#xff0c;每次发送数据前加密&#xff0c;收到后解密&#xff0c;达到加密传输 http ssl 在http之下增加了安全层&#xff0c;用于保障http的加密传输 HTTPS连接 TLS连接步骤 1.客户端发送 client h…

Apache Doris 入门教程25:通过开启 Debug 日志进行性能分析

Doris 的 FE 和 BE 节点的系统运行日志默认为 INFO 级别。通常可以满足对系统行为的分析和基本问题的定位。但是某些情况下&#xff0c;可能需要开启 DEBUG 级别的日志来进一步排查问题。本文档主要介绍如何开启 FE、BE节点的 DEBUG 日志级别。 不建议将日志级别调整为 WARN 或…

一维二维数组的指针于sizeof和strlen

目录 一维数组于指针的一些题二维数组于指针的一些题 一维数组于指针的一些题 对数组名的理解 数组名表示首元素地址 //两个例外&#xff1a; //sizeof&#xff08;数组名&#xff09;:表示计算整个数组的大小 //&数组名&#xff1a;这里取的也是整个数组的大小,除了他两以…

ArcGIS、ENVI、InVEST、FRAGSTATS技术教程

专题一 空间数据获取与制图 1.1 软件安装与应用讲解 1.2 空间数据介绍 1.3海量空间数据下载 1.4 ArcGIS软件快速入门 1.5 Geodatabase地理数据库 专题二 ArcGIS专题地图制作 2.1专题地图制作规范 2.2 空间数据的准备与处理 2.3 空间数据可视化&#xff1a;地图符号与注…

23.8.9总结

接下来是答辩后的完善&#xff1a; 轮播图在管理员处可以进行修改&#xff0c; 消息处用websocket实现实时更新&#xff0c; 管理员审核界面&#xff0c;未审核的文章不能点赞&#xff0c;评论&#xff0c;收藏&#xff0c;不能用前端页面&#xff0c; 评论用二级评论&…

(el-Table)操作:Element-plus 中Table 表格组件:多选修改成支持单选及表格相关样式的调整

Ⅰ、Element-plus 提供的 Table 表格组件与想要目标情况的对比&#xff1a; 1、Element-plus 提供 Table 组件情况&#xff1a; 其一、Element-ui 自提供的 Table 代码情况为(示例的代码)&#xff1a; // Element-plus 自提供的代码&#xff1a; // 此时是使用了 ts 语言环境…

.NET根据类的值进行序列化反序列化操作

前言&#xff1a; 在.NET种&#xff0c;序列化一般常用的方式是使用Newtonsoft.Json进行序列化和反序列化操作&#xff0c;比如创建一个Person类 public class Person {public string Name { get; set; }public int Age { get; set; } }序列化为json // 对象序列化为 JSONPe…

vuejs 设计与实现 - 快速diff算法

Vue.js 2 所采用的双端 Diff 算法。既然快速 Diff 算法如此高效&#xff0c;我们有必要了解它的思路。接下来&#xff0c;我们就着重讨论快速 Diff 算法的实现原理。 相同的前置元素和后置元素 快速 Diff 算法借鉴了纯文本 Diff 算法中预处理的步骤。 案例&#xff1a; 旧的…

数据结构-队列(C语言的简单实现)

简介 队列也是一种数据结构&#xff0c;队列也可以用来存放数字每次只能向队列里将入一个数字&#xff0c;每次只能从队列里获得一个数字在队列中&#xff0c;允许插入的一段称为入队口&#xff0c;允许删除的一段称为出队口它的原则是先进先出(FIFO: first in first out)&…