滚雪球学Java(12):JavaSE-if条件语句入门指南:掌握代码分支流程!

简介: 【4月更文挑战第1天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!

在这里插入图片描述


🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!

环境说明:Windows 10 + IntelliJ IDEA 2021.3.2 + Jdk 1.8

@[toc]

前言

Java是一种面向对象的编程语言,常用于开发Web应用、桌面应用、移动应用等。条件语句是Java中的一种常见的控制结构,用于根据条件来执行不同的代码块。

摘要

本文将介绍Java中的条件语句,包括if语句、if-else语句、if-else-if语句和switch语句。我们将通过简单易懂的例子来解释这些语句的用法,同时也会介绍一些注意事项和最佳实践。

内容

if语句

if语句是最基本的条件语句,在Java中的语法如下:

if (condition) {
   
    // 如果条件为真,则执行这里的代码
}

其中,condition是一个可以求值为布尔类型的表达式。如果这个表达式的值为true,那么if语句后面的代码块会被执行;否则,这个代码块会被跳过。

让我们来看一个例子。假设我们要判断一个数字是否大于10,如果是,就输出一条信息:

int num = 15;
if (num > 10) {
   
    System.out.println("这个数字大于10。");
}

上面的代码会输出一条信息,因为num的值为15,大于10。

需要注意的是,if语句后面的代码块只有一条语句时,可以省略花括号。但是,为了代码的可读性,建议始终使用花括号,即使只有一条语句。

if-else语句

if-else语句允许我们在条件不成立时执行另外一段代码。它的语法如下:

if (condition) {
   
    // 如果条件为真,则执行这里的代码
} else {
   
    // 如果条件为假,则执行这里的代码
}

如果condition的值为true,那么第一个代码块会被执行;否则,第二个代码块会被执行。

让我们来看一个例子。假设我们要判断一个数字是否为偶数,如果是,输出一条信息;否则,输出另一条信息:

int num = 7;
if (num % 2 == 0) {
   
    System.out.println("这个数字是偶数。");
} else {
   
    System.out.println("这个数字是奇数。");
}

上面的代码会输出一条信息,因为7是一个奇数。

if-else-if语句

if-else-if语句允许我们根据多个条件来执行不同的代码块。它的语法如下:

if (condition1) {
   
    // 如果条件1为真,则执行这里的代码
} else if (condition2) {
   
    // 如果条件2为真,则执行这里的代码
} else {
   
    // 如果所有条件都不成立,则执行这里的代码
}

如果condition1的值为true,那么第一个代码块会被执行;否则,程序会继续判断condition2的值,如果为true,则执行第二个代码块;如果所有条件都不成立,则执行最后一个代码块。

让我们来看一个例子。假设我们要判断一个数字是正数、负数还是零,分别输出不同的信息:

int num = -2;
if (num > 0) {
   
    System.out.println("这个数字是正数。");
} else if (num < 0) {
   
    System.out.println("这个数字是负数。");
} else {
   
    System.out.println("这个数字是零。");
}

上面的代码会输出一条信息,因为num的值为-2,是一个负数。

switch语句

switch语句也可以根据多个条件来执行不同的代码块。它的语法如下:

switch (expression) {
   
    case value1:
        // 如果expression的值等于value1,则执行这里的代码
        break;
    case value2:
        // 如果expression的值等于value2,则执行这里的代码
        break;
    // ...
    default:
        // 如果expression的值都不等于上述任何一个值,则执行这里的代码
        break;
}

其中,expression是一个可以求值为整型、字符型或枚举类型的表达式。程序会根据expression的值来匹配不同的case语句,并执行对应的代码块。如果没有匹配的case语句,则执行default代码块(可选)。

让我们来看一个例子。假设我们要根据数字的值来输出不同的信息:

int num = 3;
switch (num) {
   
    case 1:
        System.out.println("这是第一个数字。");
        break;
    case 2:
        System.out.println("这是第二个数字。");
        break;
    case 3:
        System.out.println("这是第三个数字。");
        break;
    default:
        System.out.println("这不是一个有效的数字。");
        break;
}

上面的代码会输出一条信息,因为num的值为3,匹配到了第三个case语句。

注意事项和最佳实践

  • 在if语句中,尽量使用简单的条件表达式,避免复杂的逻辑运算。
  • 在if-else语句中,else代码块总是在if代码块后面,建议将else代码块放在if代码块的下一行。
  • 注意if-else-if语句中各个条件的顺序,将最常见的情况放在前面,可以提高代码的效率。
  • 在switch语句中,要记得每个case语句都要有一个break语句,避免出现不必要的执行。

代码方法介绍

检查数字是否为偶数

public static boolean isEven(int num) {
   
    return num % 2 == 0;
}

这个方法用于检查一个数字是否为偶数。它接受一个整型参数,如果这个参数是偶数则返回true,否则返回false。

判断数字的正负性

public static String checkSign(int num) {
   
    if (num > 0) {
   
        return "这个数字是正数。";
    } else if (num < 0) {
   
        return "这个数字是负数。";
    } else {
   
        return "这个数字是零。";
    }
}

这个方法用于判断一个数字的正负性。它接受一个整型参数,根据这个参数的值返回不同的信息。

输出数字对应的信息

public static String getNumInfo(int num) {
   
    switch (num) {
   
        case 1:
            return "这是第一个数字。";
        case 2:
            return "这是第二个数字。";
        case 3:
            return "这是第三个数字。";
        default:
            return "这不是一个有效的数字。";
    }
}

这个方法用于根据一个数字的值输出对应的信息。它接受一个整型参数,根据这个参数的值返回不同的信息。

测试用例

测试isEven方法

@Test
void testIsEven() {
   
    assertTrue(isEven(4));
    assertFalse(isEven(5));
}

这个测试用例用于测试isEven方法的正确性。它通过断言来判断方法返回值是否符合预期。

测试checkSign方法

@Test
void testCheckSign() {
   
    assertEquals("这个数字是正数。", checkSign(5));
    assertEquals("这个数字是负数。", checkSign(-7));
    assertEquals("这个数字是零。", checkSign(0));
}

这个测试用例用于测试checkSign方法的正确性。它通过断言来判断方法返回值是否符合预期。

剩下的就同学们自己测试玩玩啦。

总结

Java中的if语句是一种条件分支语句,它用于根据给定的条件来执行不同的代码块。if语句的基本结构如下:

if (condition) {
    // 如果条件为真,则执行此代码块
} else {
    // 如果条件为假,则执行此代码块(可选)
}

以下是if语句的一些常见用法和注意事项:

  1. 可以使用比较运算符(如 ==、!=、>、<、>=、<=)和逻辑运算符(如 &&、||)来组合条件。
  2. 可以嵌套多个if语句来处理更复杂的条件。
  3. 如果else语句块没有被包含在if语句中,则它会被视为与最近的if语句配对。
  4. 如果条件为布尔值,则不需要使用 "== true" 或 "== false" 进行比较,而是直接使用布尔值本身即可。
  5. 如果只有一条语句需要执行,可以使用单行if语句来写,如:if (condition) statement;
  6. Java还提供了switch语句来处理多个条件的情况,可以比if语句更加简洁和可读。

以上是if语句的一些常用用法和注意事项。在实际编程中,if语句经常被用来处理不同的条件分支,如判断用户输入是否合法、处理异常情况、实现不同逻辑分支等。

  ... ...

  好啦,这期的内容就基本接近尾声啦,若你想学习更多,你可以看看专栏的导读篇《「滚雪球学Java」教程导航帖》,本专栏致力打造最硬核 Java 零基础系列学习内容,🚀打造全网精品硬核专栏,带你直线超车;欢迎大家订阅持续学习。功不唐捐,久久为功!

「赠人玫瑰,手留余香」,咱们下期拜拜~~

附录源码

  如上涉及所有源码均已上传同步在「Gitee」,提供给同学们一对一参考学习,辅助你更迅速的掌握。

☀️建议/推荐你

  无论你是计算机专业的学生,还是对编程感兴趣的跨专业小白,都建议直接入手「滚雪球学Java」专栏;该专栏不仅免费,bug菌还郑重承诺,只要你学习此专栏,均能入门并理解Java SE,以全网最快速掌握Java语言,每章节源码均同步「Gitee」,你真值得拥有;学习就像滚雪球一样,越滚越大,带你指数级提升。

  码字不易,如果这篇文章对你有所帮助,帮忙给bugj菌来个一键三连(关注、点赞、收藏) ,您的支持就是我坚持写作分享知识点传播技术的最大动力。

  同时也推荐大家关注我的硬核公众号:「猿圈奇妙屋」 ;以第一手学习bug菌的首发干货,不仅能学习更多技术硬货,还可白嫖最新BAT大厂面试真题、4000G Pdf技术书籍、万份简历/PPT模板、技术文章Markdown文档等海量资料,你想要的我都有!

目录
相关文章
|
11天前
|
Java 开发者 微服务
Spring Boot 入门:简化 Java Web 开发的强大工具
Spring Boot 是一个开源的 Java 基础框架,用于创建独立、生产级别的基于Spring框架的应用程序。它旨在简化Spring应用的初始搭建以及开发过程。
27 6
Spring Boot 入门:简化 Java Web 开发的强大工具
|
15天前
|
Java
java小工具util系列4:基础工具代码(Msg、PageResult、Response、常量、枚举)
java小工具util系列4:基础工具代码(Msg、PageResult、Response、常量、枚举)
44 24
|
7天前
|
监控 架构师 Java
Java虚拟机调优的艺术:从入门到精通####
本文作为一篇深入浅出的技术指南,旨在为Java开发者揭示JVM调优的神秘面纱,通过剖析其背后的原理、分享实战经验与最佳实践,引领读者踏上从调优新手到高手的进阶之路。不同于传统的摘要概述,本文将以一场虚拟的对话形式,模拟一位经验丰富的架构师向初学者传授JVM调优的心法,激发学习兴趣,同时概括性地介绍文章将探讨的核心议题——性能监控、垃圾回收优化、内存管理及常见问题解决策略。 ####
|
12天前
|
缓存 监控 Java
Java线程池提交任务流程底层源码与源码解析
【11月更文挑战第30天】嘿,各位技术爱好者们,今天咱们来聊聊Java线程池提交任务的底层源码与源码解析。作为一个资深的Java开发者,我相信你一定对线程池并不陌生。线程池作为并发编程中的一大利器,其重要性不言而喻。今天,我将以对话的方式,带你一步步深入线程池的奥秘,从概述到功能点,再到背景和业务点,最后到底层原理和示例,让你对线程池有一个全新的认识。
42 12
|
12天前
|
Java 编译器 数据库
Java 中的注解(Annotations):代码中的 “元数据” 魔法
Java注解是代码中的“元数据”标签,不直接参与业务逻辑,但在编译或运行时提供重要信息。本文介绍了注解的基础语法、内置注解的应用场景,以及如何自定义注解和结合AOP技术实现方法执行日志记录,展示了注解在提升代码质量、简化开发流程和增强程序功能方面的强大作用。
41 5
|
12天前
|
存储 算法 Java
Java 内存管理与优化:掌控堆与栈,雕琢高效代码
Java内存管理与优化是提升程序性能的关键。掌握堆与栈的运作机制,学习如何有效管理内存资源,雕琢出更加高效的代码,是每个Java开发者必备的技能。
40 5
|
14天前
|
Java API 开发者
Java中的Lambda表达式:简洁代码的利器####
本文探讨了Java中Lambda表达式的概念、用途及其在简化代码和提高开发效率方面的显著作用。通过具体实例,展示了Lambda表达式如何在Java 8及更高版本中替代传统的匿名内部类,使代码更加简洁易读。文章还简要介绍了Lambda表达式的语法和常见用法,帮助开发者更好地理解和应用这一强大的工具。 ####
|
11天前
|
安全 Java API
Java中的Lambda表达式:简化代码的现代魔法
在Java 8的发布中,Lambda表达式的引入无疑是一场编程范式的革命。它不仅让代码变得更加简洁,还使得函数式编程在Java中成为可能。本文将深入探讨Lambda表达式如何改变我们编写和维护Java代码的方式,以及它是如何提升我们编码效率的。
|
13天前
|
设计模式 Java 开发者
Java多线程编程的陷阱与解决方案####
本文深入探讨了Java多线程编程中常见的问题及其解决策略。通过分析竞态条件、死锁、活锁等典型场景,并结合代码示例和实用技巧,帮助开发者有效避免这些陷阱,提升并发程序的稳定性和性能。 ####
|
11天前
|
存储 监控 小程序
Java中的线程池优化实践####
本文深入探讨了Java中线程池的工作原理,分析了常见的线程池类型及其适用场景,并通过实际案例展示了如何根据应用需求进行线程池的优化配置。文章首先介绍了线程池的基本概念和核心参数,随后详细阐述了几种常见的线程池实现(如FixedThreadPool、CachedThreadPool、ScheduledThreadPool等)的特点及使用场景。接着,通过一个电商系统订单处理的实际案例,分析了线程池参数设置不当导致的性能问题,并提出了相应的优化策略。最终,总结了线程池优化的最佳实践,旨在帮助开发者更好地利用Java线程池提升应用性能和稳定性。 ####