【JavaSE专栏10】Java的顺序结构、选择结构和循环结构

news2024/11/16 13:47:16

作者主页:Designer 小郑
作者简介:Java全栈软件工程师一枚,来自浙江宁波,负责开发管理公司OA项目,专注软件前后端开发(Vue、SpringBoot和微信小程序)、系统定制、远程技术指导。CSDN学院、蓝桥云课认证讲师,全栈领域优质创作者。热爱技术、专注业务、开放合作、乐于分享,期待你我共同成长!
主打方向:Vue、SpringBoot、微信小程序

绝大多数编程语言,都具备三大结构,那就是顺序结构、选择结构和循环结构

Java 也不例外,接下来将讲解以上三种结构的应用。

目录

    • 一、顺序结构
    • 二、选择结构
      • 2.1 单选择结构
      • 2.2 双分支选择结构
      • 2.3 多分支选择结构。
    • 三、循环结构
      • 3.1 while 循环
      • 3.2 do-while 循环
      • 3.3 for 循环
    • 四、课时小结


一、顺序结构

编程语言中最基本的结构就是顺序结构,除非程序使用了指定关键字,否则就是按照从上到下的规则,逐句执行代码。

请看下面的代码,从上到下依次为五条输出语句。

public class Main {
    public static void main(String[] args) {

        System.out.println("1");
        System.out.println("2");
        System.out.println("3");
        System.out.println("4");
        System.out.println("5");
    }
}

最终输出的结果为:

1
2
3
4
5

Java 语句之间,是按照从上到下的顺序执行的,任何一个算法都离不开顺序结构这一种基本算法结构。

在这里插入图片描述


二、选择结构

2.1 单选择结构

在 Java 开发中,经常会根据一个条件来判断是否需要执行某段代码

比如:

  • 如果学生成绩大于等于 60 分,则输出及格。
  • 如果身份证倒数第二位是奇数,则输出男。

所以,开发者需要判断一个条件是否可行,然后才去执行代码

也就是如果条件结果的布尔值,如果为 true 就执行,如果布尔值为 false 就不执行。

单分支选择结构代码如下所示。

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int grade = sc.nextInt();
        if(grade >= 60) {
            System.out.println("及格");
        }
    }
}

提示:Scanner 是一个输入控制类,可以接受用户在输入框输入的值。

在这里插入图片描述


2.2 双分支选择结构

在 Java 开发中,往往会先判断某个条件是否可行,如果可行执行代码 A,否则执行代码 B。

比如:

  • 如果学生成绩大于等于 60 分,则输出及格,否则输出不及格。
  • 如果身份证倒数第二位是奇数,则输出男,否则输出女。

双分支选择结构代码如下所示。

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int grade = sc.nextInt();
        if(grade >= 60) {
            System.out.println("及格");
        } else {
            System.out.println("不及格");
        }
    }
}

在这里插入图片描述

2.3 多分支选择结构。

在 Java 开发中,往往会先判断某个条件 X 是否可行,如果 X 可行执行代码 A;否则判断另外一个条件 Y 是否可行,如果 Y 可行执行代码 B,否则执行代码 C 或判断另外一个条件 Z。

这就是多分支选择结构

比如:

  • 如果学生成绩大于等于 80 分,则输出优秀,如果在 60 分到 80 之间,输出及格,否则输出不及格。
  • 如果销售额大于 10 万输出 A,如果在 5 万 到 10 万之间,输出 B,小于 5 万输出 C。
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int grade = sc.nextInt();
        if(grade >= 80) {
            System.out.println("优秀");
        } else if(grade >= 60) {
            System.out.println("及格");
        } else {
            System.out.println("不及格");
        }
    }
}

提示:在实战开发中,请同学们不要过多的嵌套使用 if-else,避免对代码可读性造成影响。

在这里插入图片描述

除了 if 语句外,Java 还支持 switch 语句,代码如下所示。

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int grade = sc.nextInt();
        switch(grade){
            case 5:
                System.out.println("结果是 5");
                break;
            case 4:
                System.out.println("结果是 4");
                break;
            case 3:
                System.out.println("结果是 3");
                break;
            default:
                System.out.println("结果小于 3");
        }
    }
}

关于 if 语句和 switch 语句的高级用法,会在下面的章节介绍,本节只需简单了解即可。


三、循环结构

3.1 while 循环

while 是最基本的循环,只要条件表达式为真,就会一直执行下去。

提示:while 有可能进行无限循环导致程序崩溃,请同学们注意循环退出条件。

比如要循环输出 0 到 9,代码如下:

public class Main {
    public static void main(String[] args) {
        int i = 0;
        while(i < 10) {
            System.out.println(i);
             i ++;
        }
    }
}

输出结果:

0
1
2
3
4
5
6
7
8
9

当程序需要一直执行时,也会用到 while 语句,如服务器事件监听。

当然建议使用其他技术实现,不要一直循环执行

大多数情况会让循环主动停止下来,所以需要一个让 while 循环判断失败的方式来结束循环。

在这里插入图片描述


3.2 do-while 循环

对于 do-while 循环,同学们只需记住一点:

如果不符合条件,while 一次都不会执行,而 do-while 至少会执行一次。

其实就是把执行前置了,代码如下。

public class Main {
    public static void main(String[] args) {
        int i = 0;
        do {
            System.out.println(i);
             i ++;
        } while (i < 10);
    }
}

while 循环规则是先判断后执行,do…while 循环规则是先执行后判断

在这里插入图片描述


3.3 for 循环

Java 中的循环可以只用 while 或 do-while 来实现,但 Java 还提供了一种简易版的循环,那就是 for 循环。

for循环语句是支持迭代的一种通用结构,使用起来比较灵活,但执行之前,执行的次数已经定下来了,代码如下所示。

public class Main {
    public static void main(String[] args) {
        
        for(int i = 0; i < 10; i ++) {
            System.out.println(i);
        }
    }
}

对于循环的学习,最通俗易懂的就是九九乘法表了,直接上代码!

public class Main {
    public static void main(String[] args) {

        for(int i = 1; i < 10; i ++) {
            for(int j = 1; j <= i; j ++) {
                System.out.print(i + " * " + j + " = " + (i * j) + ";    ");
            }
            System.out.println();
        }
    }
}

输出结果如下

1 * 1 = 1;    
2 * 1 = 2;    2 * 2 = 4;    
3 * 1 = 3;    3 * 2 = 6;    3 * 3 = 9;    
4 * 1 = 4;    4 * 2 = 8;    4 * 3 = 12;    4 * 4 = 16;    
5 * 1 = 5;    5 * 2 = 10;    5 * 3 = 15;    5 * 4 = 20;    5 * 5 = 25;    
6 * 1 = 6;    6 * 2 = 12;    6 * 3 = 18;    6 * 4 = 24;    6 * 5 = 30;    6 * 6 = 36;    
7 * 1 = 7;    7 * 2 = 14;    7 * 3 = 21;    7 * 4 = 28;    7 * 5 = 35;    7 * 6 = 42;    7 * 7 = 49;    
8 * 1 = 8;    8 * 2 = 16;    8 * 3 = 24;    8 * 4 = 32;    8 * 5 = 40;    8 * 6 = 48;    8 * 7 = 56;    8 * 8 = 64;    
9 * 1 = 9;    9 * 2 = 18;    9 * 3 = 27;    9 * 4 = 36;    9 * 5 = 45;    9 * 6 = 54;    9 * 7 = 63;    9 * 8 = 72;    9 * 9 = 81;  

四、课时小结

在本课时中,首先讲解了 Java 的顺序结构、选择结构和循环结构的概念,接着演示了三种结构的具体应用。在下一节课时中,将讲解 Java 的 if 条件语句的语法。
在这里插入图片描述

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

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

相关文章

金融错配程度/信贷错配程度/资本错配程度/资本资源错配程度(1998-2021年)

数据来源&#xff1a;根据沪深A股上市公司数据进行测算 时间跨度&#xff1a;1998-2021年 区域范围&#xff1a;沪深A股上市公司 指标说明&#xff1a; 参考邵挺(2010)、周煜皓和张胜勇(2014)的研究&#xff0c;运用金融错配负担水平来衡量信贷错配&#xff08;Fd&#xff…

Redis-哨兵模式以及集群

在开始这部分内容之前需要先说一下复制功能&#xff0c;因为这是Redis实现主从数据同步的实现方式。复制功能如果存在两台服务器的话&#xff0c;我们可以使用redis的复制功能&#xff0c;让一台服务器去同步另一台服务器的数据。现在我启动了两台redis服务器&#xff0c;一个端…

【大数据】HADOOP-Yarn集群界面UI指标项详解(建议收藏哦)

目录首页&#xff08;Cluster&#xff09;节点信息Scheduler Metrics&#xff1a;集群调度信息节点信息详解&#xff08;Nodes&#xff09;应用列表信息&#xff08;applications&#xff09;队列详情页&#xff08;Scheduler&#xff09;指标详细说明&#xff08;非常重要&…

斯坦福:chatGPT可能有了人类心智,相当于9岁儿童!

chatGPT已经具备了人类独心智&#xff0c;这话不是我说的&#xff0c;是一位来自斯坦福大学计算机科学家说的。很多玩过chatGPT的人都见识过他的”无所不知”&#xff0c;但是&#xff0c;我觉得最让我吃惊的是&#xff0c;他比以前我们用过那些对话机器人最大的差别就是你甚至…

「数据科学」数据科学家为什么应该学习PostgreSQL?

SQL是成为数据科学家的必要条件吗?答案是肯定的。数据科学已经发展了&#xff0c;虽然许多数据科学家仍然使用CSV文件(值以逗号分隔的文本文件)&#xff0c;但它们不是最好的选择。Python Panda库允许从CSV文件加载数据&#xff0c;但是这些文件有许多约束。例如&#xff0c;它…

各种常用C/C++集成开发环境的安装与配置

新学期又开始了&#xff0c;帮助又一堆菜鸟安装和配置C/C集成开发环境是一件恼人的工作。 本文引用自作者编写的下述图书; 本文允许以个人学习、教学等目的引用、讲授或转载&#xff0c;但需要注明原作者"海洋饼干叔 叔"&#xff1b;本文不允许以纸质及电子出版为目的…

【k8s】如何搭建搭建k8s服务器集群(Kubernetes)

搭建k8s服务器集群 服务器搭建环境随手记 文章目录搭建k8s服务器集群前言&#xff1a;一、前期准备&#xff08;所有节点&#xff09;1.1所有节点&#xff0c;关闭防火墙规则&#xff0c;关闭selinux&#xff0c;关闭swap交换&#xff0c;打通所有服务器网络&#xff0c;进行p…

Bash Shell 通过ls命令筛选文件

Bash Shell 通过ls命令及其管道根据大小名称筛选文件 最近参与的项目当中有需要用pyarmor加密项目的要求&#xff0c;听网上吹的pyarmor都那么神&#xff0c;用了一下感觉也一般&#xff0c;试用版普通模式下文件加密居然还有大小32KB的限制&#xff0c;加密到一半就失败了&am…

Linux常用命令汇总

1、tcpdump抓包 tcpdump这个命令是用来抓包的&#xff0c;默认情况下这个命令是没有的&#xff0c;需要安装一下&#xff1a; yum install -y tcpdump 使用这个命令的时候最好是加上你网卡的名称&#xff0c;不然可能使用不了&#xff1a; tcpdump -nn -i {网卡名称} 网卡名称…

iOS开发笔记之九十六——本地Data Persistence总结笔记

本质上来说&#xff0c;不管是哪种缓存方式最终都会以文件的形式存储在磁盘上&#xff0c;只不过上层进行了某种“封装”或“抽象”&#xff0c;所以还是做了分类&#xff0c;目前iOS本地持久化缓存&#xff08;Storage/Persistence&#xff09;有以下几种形式&#xff1a;User…

vTESTstudio - VT System CAPL Functions - VT2004(续1)

成熟,就是某一个突如其来的时刻,把你的骄傲狠狠的踩到地上,任其开成花或者烂成泥。vtsStartStimulation - 启动激励输出功能&#xff1a;自动激励输出注意&#xff1a;在启动激励输出之前&#xff0c;一定要设置好输出模式Target&#xff1a;目标通道变量空间名称&#xff0c;例…

TLB内存页表 - LoongArch

TLB内存页表 - LoongArch 文章目录TLB内存页表 - LoongArch页表操作指令TLB相关寄存器页表格式CpuSetAttributesUEFI Memory attribute页表操作指令 LDDIR: 用于软件页表遍历过程中目录项的访问. LDPTE: 用于在软件页表遍历过程中页表项的访问. INVTLB: 用于无效TLB中的内容. …

Mybatis源码分析:Mybatis的数据存储对象

前言&#xff1a;SQLSession是对JDBC的封装 一&#xff1a;SQLSession和JDBC的对照说明 左边是我们的客户端程序&#xff0c;右边是我们的MySQL数据仓&#xff0c;或者叫MySQL实例 Mybatis是对JDBC的封装&#xff0c;将JDBC封装成了一个核心的SQLSession对象 JDBC当中的核心对…

2023年浙江理工大学MBA招生考试初试成绩查询及复查的通知

根据往年的情况&#xff0c;2023浙江理工大学MBA考试初试成绩可能将于2月21日下午两点公布&#xff0c;为了广大考生可以及时查询到自己的分数&#xff0c;杭州达立易考教育为大家汇总了信息。 一、成绩查询考生可登录中国研究生招生信息网“全国硕士研究生招生考试初试成绩查询…

二十四节气—雨水,好雨知时节,当春乃发生。

雨水&#xff0c;是二十四节气之第2个节气。 雨水节气不仅表明降雨的开始及雨量增多&#xff0c;而且表示气温的升高&#xff0c;意味着进入气象意义的春天。 雨水节是一个非常富有想象力和人情味的节气&#xff0c;在这一天&#xff0c;不管下不下雨都充满着一种雨意蒙蒙的诗…

nps内网穿透工具

一、准备一台有公网ip的服务器 https://github.com/ehang-io/nps/releases 在这个地址下载服务端的安装包&#xff0c;centos的下载这个 上传到服务器上。 二、然后解压&#xff0c;安装&#xff0c;启动 [rootadministrator ~]# tar xzvf linux_amd64_server.tar.gz [roo…

【C语言】预编译

&#x1f6a9;write in front&#x1f6a9; &#x1f50e;大家好&#xff0c;我是謓泽&#xff0c;希望你看完之后&#xff0c;能对你有所帮助&#xff0c;不足请指正&#xff01;共同学习交流&#x1f50e; &#x1f3c5;2021年度博客之星物联网与嵌入式开发TOP5&#xff5…

[架构之路-110]-《软考-系统架构设计师》-软件架构设计-3-架构描述语言ADL与UML

前言&#xff1a;第3节 架构描述语言ADL3.1 ADL概述3.1.1 什么是ADLADL&#xff0c;即架构描述语言(Architecture Description Language)。两个重要的团体在使用架构描述语言术语。它们是&#xff1a;软件工程团体企业建模和工程团体。在软件工程团体&#xff0c;架构描述语言&…

Jvm -堆对象的划分

堆对于一个jvm进程来说是唯一的&#xff0c;一个进程只有一个jvm&#xff0c;但是进程半酣多个线程&#xff0c;多个线程共享一个堆。 也就是说&#xff0c;一个jvm实例只存在一个堆&#xff0c;同时对也是Java内存管理的核心区域。 Java堆区域的大小在jvm启动时就已经被确定…

基于springboot+vue的儿科保健计划免疫系统

基于springbootvue的儿科保健计划免疫系统 ✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取项目下载方式&#x1f345; 一、项目背…