CodeGym /课程 /JAVA 25 SELF /条件语句:if else

条件语句:if else

JAVA 25 SELF
第 3 级 , 课程 1
可用

1. 运算符 if else

如果程序不管外部情况如何变化都做同样的事情,那就没有什么用处了。程序需要能够适应不同的情境:在一种情况下做这一些事,在另一种情况下做另一些事。

在 Java 中,这通过条件语句实现——关键字 ifelse,它们允许根据条件的真值执行不同的语句块。

条件语句由三部分组成:条件命令 1命令 2。如果 条件为真,则执行命令 1,否则执行命令 2。两个命令不会同时执行。该运算符的一般形式如下:


if (条件)
   命令1;
else
   命令2;
条件语句 if-else

if 可理解为“如果”,而 else 可理解为“否则”。用自然语言可以这样描述:


如果 条件 为真,则
   执行 命令1;
否则
   执行 命令2;
条件语句 if-else 的自然语言描述

示例:

// 屏幕将输出:你还是个孩子

int age = 17;
if (age < 18)
   System.out.println("你还是个孩子");
else
   System.out.println("你已经是成年人了");
// 屏幕将输出:暖和

int temperature = 5;
if (temperature < 0)
   System.out.println("外面很冷");
else
   System.out.println("暖和");
// 屏幕将输出:可以去考驾照

int age = 18;
if (age == 18)
   System.out.println("可以去考驾照");
else
   System.out.println("可以攒钱买车");

2. 语句块

如果在条件成立(或不成立)时,你希望程序执行多条语句,可以将它们合并为一个语句块

要把语句合并成一个块,需要用大括号“包裹”它们。一般形式如下:


{
   命令1;
   命令2;
   命令3;
}

块中可以有任意多条语句,甚至可以为零。

if-else 与语句块结合的示例:

// 屏幕将输出:你还是个孩子。别和大人顶嘴

int age = 17;
if (age < 18)
{
   System.out.println("你还是个孩子");
   System.out.println("别和大人顶嘴");
}
else
{
   System.out.println("你已经是成年人了");
   System.out.println("现在的年轻人啊");
}
// 屏幕将输出:暖和

int temperature = 5;
if (temperature < 0)
{
   System.out.println("外面很冷");
   System.out.println("戴上帽子");
}
else
   System.out.println("暖和");
// 将执行一个空的语句块。屏幕上不会输出任何内容。 

int age = 21;
if (age == 18)
   System.out.println("可以拿驾照");
else
{
}

3. if 的简写语法

如果 else 块中的代码不存在,则可以省略它。此时 if 语句如下:


if (条件)
{
    命令1;
}
条件语句 if

示例:

int age = 19;
if (age >= 18)
{
    System.out.println("你已成年!");
}

这是如何工作的?

如果条件为真,则执行代码块;如果为假,则什么也不做——程序继续向下执行。

程序中可以有 else 块,但为空(大括号之间没有任何语句)。也可以直接删除它:程序行为不会发生变化。

4. 条件组合:else if

有时不只是“是/否”的选择,而是需要在多个选项中做出选择。这时可以使用 else if 组合:

if (条件1)
{
    // 当 条件1 为真时执行
}
else if (条件2)
{
    // 当 条件2 为真且 条件1 为假时执行
}
else
{
    // 当以上条件都不满足时执行
}

示例:

int hour = 13;
if (hour < 12)
{
    System.out.println("早上好!");
}
else if (hour < 18)
{
    System.out.println("下午好!");
}
else
{
    System.out.println("晚上好!");
}

这里发生了什么?

  • 如果时间小于 12 点——是早上。
  • 如果在 12 点到 18 点之间——是下午。
  • 如果更大——是晚上。
  • 程序只会选择其中的一个分支!一旦某个条件满足——后面的条件将不会再被检查。

5. 示意图:分支流程图

以下是以流程图形式的表现:

如果有多个条件:

这很像桌面角色扮演游戏中的分岔:往左——一种情况;往右——另一种;直走——又是别的!

6. 可以检查哪些条件?

if 后的圆括号内必须是布尔表达式——其结果为 truefalse

主要比较运算符:

运算符 含义 示例
==
等于
x == 5
!=
不等于
x != 10
>
大于
x > 0
<
小于
age < 18
>=
大于或等于
score >= 100
<=
小于或等于
count <= 50

条件示例:

if (number == 10)
if (age != 18)
if (temperature > 36)
if (balance <= 0)

请注意:=(一个等号)表示赋值;==(两个等号)表示比较。这是新手最常见的错误之一!如果你不小心写成:

if (x = 5) // 错误!

——编译器会报错并警告你,这样做很有必要。

7. 在条件中处理字符串

在 Java 中,用 == 比较对整数是正确的。对浮点数不建议使用 == 比较;对字符串则不能使用 ==——请使用 equals() 方法,它比较的是字符串的内容(而不是引用)。

关于字符串比较的细节我们稍后再谈。如下例所示是正确的字符串比较方式:

String password = console.nextLine();
if (password.equals("qwerty"))            // 调用 equals() 方法并传入第二个字符串
{
    System.out.println("你已登录!");
}

8. 特性与注意事项:

大括号:要不要写?

如果在 ifelse 后只有一条语句,可以省略大括号:

if (age > 18)
    System.out.println("你大于 18 岁!");

// 但总是写上大括号更安全:
if (age > 18)
{
    System.out.println("你大于 18 岁!");
}

建议:始终写上大括号。这能避免一大堆错误,尤其是在扩展代码时。

逻辑错误:请留心条件!

如果你这样写:

if (age > 18)
    System.out.println("你大于 18 岁!");
    System.out.println("欢迎!");

编译器会这样理解这段代码:

if (age > 18)
{
    System.out.println("你大于 18 岁!");
}

System.out.println("欢迎!");

第二行总是会执行——需要使用大括号,才能把两行代码都放在同一个分支中。

评论 (5)
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION
Unicode0150 级别 6,Nanchang,China
21 六月 2026
窝窝飞 级别 4,Nanjing,China
27 二月 2026
我已经手搓出来简单的登录验证了
zestquest 级别 7,China,China
4 一月 2026
最大的挑战:判断题目中的是中文感叹号还是英文感叹号
窝窝飞 级别 4,Nanjing,China
12 二月 2026
😀
告不离水 级别 24,Jiangmen,China
23 六月 2026
大大方方复制