滚雪球学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文档等海量资料,你想要的我都有!

目录
相关文章
|
2天前
|
存储 Java 测试技术
滚雪球学Java(67):深入理解 TreeMap:Java 中的有序键值映射表
【6月更文挑战第21天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
9 2
滚雪球学Java(67):深入理解 TreeMap:Java 中的有序键值映射表
|
3天前
|
存储 Java 测试技术
滚雪球学Java(66):Java之HashMap详解:深入剖析其底层实现与源码分析
【6月更文挑战第20天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
11 3
滚雪球学Java(66):Java之HashMap详解:深入剖析其底层实现与源码分析
|
2天前
|
网络协议 安全 Java
Java网络编程入门涉及TCP/IP协议理解与Socket通信。
【6月更文挑战第21天】Java网络编程入门涉及TCP/IP协议理解与Socket通信。TCP/IP协议包括应用层、传输层、网络层和数据链路层。使用Java的`ServerSocket`和`Socket`类,服务器监听端口,接受客户端连接,而客户端连接指定服务器并交换数据。基础示例展示如何创建服务器和发送消息。进阶可涉及多线程、NIO和安全传输。学习这些基础知识能助你构建网络应用。
10 1
|
3天前
|
Java 开发者
告别单线程时代!Java 多线程入门:选继承 Thread 还是 Runnable?
【6月更文挑战第19天】在Java中,面对多任务需求时,开发者可以选择继承`Thread`或实现`Runnable`接口来创建线程。`Thread`继承直接但限制了单继承,而`Runnable`接口提供多实现的灵活性和资源共享。多线程能提升CPU利用率,适用于并发处理和提高响应速度,如在网络服务器中并发处理请求,增强程序性能。不论是选择哪种方式,都是迈向高效编程的重要一步。
|
1天前
|
Java
Java 从入门到进阶之路(十九)
Java 从入门到进阶之路(十九)
|
2天前
|
Java 开发者
JAVA多线程通信入门:wait()、notify()、notifyAll()大揭秘!
【6月更文挑战第20天】Java多线程中,`wait()`, `notify()`, `notifyAll()`是Object类的关键通信方法。`wait()`让线程等待并释放锁,`notify()`随机唤醒一个等待的线程,`notifyAll()`唤醒所有。示例展示了在共享资源类中如何使用它们来协调生产者消费者线程。调用前需持有锁,否则抛异常。注意避免死锁和活锁,恰当使用这些方法至关重要。
|
2天前
|
Java 编译器
Java 从入门到进阶之路(七)
Java 从入门到进阶之路(七)
JAVA基础——三种流程控制语句
JAVA基础——三种流程控制语句
273 0
JAVA基础——三种流程控制语句
|
2天前
|
安全 Java
JAVA多线程通信新解:wait()、notify()、notifyAll()的实用技巧
【6月更文挑战第20天】Java多线程中,`wait()`, `notify()`和`notifyAll()`用于线程通信。在生产者-消费者模型示例中,它们确保线程同步。`synchronized`保证安全,`wait()`在循环内防止虚假唤醒,`notifyAll()`避免唤醒单一线程问题。关键技巧包括:循环内调用`wait()`,优先使用`notifyAll()`以保证可靠性,以及确保线程安全和正确处理`InterruptedException`。
|
2天前
|
安全 Java
深入解读JAVA多线程:wait()、notify()、notifyAll()的奥秘
【6月更文挑战第20天】JAVA多线程中,wait(), notify(), notifyAll()是Object类的关键同步机制。wait()让线程等待并释放锁,直到被notify()或notifyAll()唤醒或超时。它们必须在同步块中使用,持有锁的线程调用。notify()唤醒一个等待线程,notifyAll()唤醒所有。最佳实践包括:与synchronized结合,循环检查条件,避免循环内notify(),通常优先使用notifyAll()。