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

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

一、顺序结构

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

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

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; 

四、课时小结

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

相关文章
|
4月前
|
存储 Java 编译器
深入理解Java虚拟机--类文件结构
本内容介绍了Java虚拟机与Class文件的关系及其内部结构。Class文件是一种与语言无关的二进制格式,包含JVM指令集、符号表等信息。无论使用何种语言,只要能生成符合规范的Class文件,即可在JVM上运行。文章详细解析了Class文件的组成,包括魔数、版本号、常量池、访问标志、类索引、字段表、方法表和属性表等,并说明其在Java编译与运行过程中的作用。
134 0
|
6月前
|
Java
深入JavaSE:详解Java对象的比较。
总的来说,Java对象的比较就像海洋生物的比较,有外在的,有内在的,有面对所有情况的,也有针对特殊情况的。理解并掌握这些比较方式,就能更好地驾驭Java的世界,游刃有余地操作Java对象。
132 12
|
8月前
|
人工智能 JSON Java
列表结构与树结构转换分析与工具类封装(java版)
本文介绍了将线性列表转换为树形结构的实现方法及工具类封装。核心思路是先获取所有根节点,将其余节点作为子节点,通过递归构建每个根节点的子节点。关键在于节点需包含 `id`、`parentId` 和 `children` 三个属性。文中提供了两种封装方式:一是基于基类 `BaseTree` 的通用工具类,二是使用函数式接口实现更灵活的方式。推荐使用后者,因其避免了继承限制,更具扩展性。代码示例中使用了 Jackson 库进行 JSON 格式化输出,便于结果展示。最后总结指出,理解原理是进一步优化和封装的基础。
274 0
|
8月前
|
前端开发 Cloud Native Java
Java||Springboot读取本地目录的文件和文件结构,读取服务器文档目录数据供前端渲染的API实现
博客不应该只有代码和解决方案,重点应该在于给出解决方案的同时分享思维模式,只有思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
Java||Springboot读取本地目录的文件和文件结构,读取服务器文档目录数据供前端渲染的API实现
|
8月前
|
传感器 安全 Java
《从头开始学java,一天一个知识点》之:循环结构:for与while循环的使用场景
**你是否也经历过这些崩溃瞬间?** - 看了三天教程,连`i++`和`++i`的区别都说不清 - 面试时被追问&quot;`a==b`和`equals()`的区别&quot;,大脑突然空白
251 22
|
8月前
|
传感器 监控 Java
Java代码结构解析:类、方法、主函数(1分钟解剖室)
### Java代码结构简介 掌握Java代码结构如同拥有程序世界的建筑蓝图,类、方法和主函数构成“黄金三角”。类是独立的容器,承载成员变量和方法;方法实现特定功能,参数控制输入环境;主函数是程序入口。常见错误包括类名与文件名不匹配、忘记static修饰符和花括号未闭合。通过实战案例学习电商系统、游戏角色控制和物联网设备监控,理解类的作用、方法类型和主函数任务,避免典型错误,逐步提升编程能力。 **脑图速记法**:类如太空站,方法即舱段;main是发射台,static不能换;文件名对仗,括号要成双;参数是坐标,void不返航。
338 5
|
12月前
|
JSON Java 程序员
Java|如何用一个统一结构接收成员名称不固定的数据
本文介绍了一种 Java 中如何用一个统一结构接收成员名称不固定的数据的方法。
173 3
|
存储 算法 Java
🚀Java零基础-顺序结构详解 🚀
【10月更文挑战第11天】本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
171 6
|
小程序 Oracle Java
JVM知识体系学习一:JVM了解基础、java编译后class文件的类结构详解,class分析工具 javap 和 jclasslib 的使用
这篇文章是关于JVM基础知识的介绍,包括JVM的跨平台和跨语言特性、Class文件格式的详细解析,以及如何使用javap和jclasslib工具来分析Class文件。
261 0
JVM知识体系学习一:JVM了解基础、java编译后class文件的类结构详解,class分析工具 javap 和 jclasslib 的使用
|
存储 开发者 C#
WPF与邮件发送:教你如何在Windows Presentation Foundation应用中无缝集成电子邮件功能——从界面设计到代码实现,全面解析邮件发送的每一个细节密武器!
【8月更文挑战第31天】本文探讨了如何在Windows Presentation Foundation(WPF)应用中集成电子邮件发送功能,详细介绍了从创建WPF项目到设计用户界面的全过程,并通过具体示例代码展示了如何使用`System.Net.Mail`命名空间中的`SmtpClient`和`MailMessage`类来实现邮件发送逻辑。文章还强调了安全性和错误处理的重要性,提供了实用的异常捕获代码片段,旨在帮助WPF开发者更好地掌握邮件发送技术,提升应用程序的功能性与用户体验。
318 0