原文: https://www.programiz.com/java-programming/if-else-statement
在本教程中,您将在示例的帮助下了解使用 Java if
和if...else
语句的 Java 中的控制流语句。
在计算机编程中,通常需要根据指定条件是true
还是false
(仅在运行时才知道)执行代码的特定部分。 在这种情况下,将使用控制流语句。
Java if
语句
在 Java 中,if
语句的语法为:
if (expression) {
// statements
}
此处expression
是布尔表达式。 布尔表达式返回true
或false
。
- 如果表达式的计算结果为
true
,则将执行if
主体内的语句(括号内的语句) - 如果表达式的计算结果为
false
,则将跳过if
主体内部的语句
if
语句如何工作?
Java if
语句的原理
示例 1:Java if
语句
class IfStatement {
public static void main(String[] args) {
int number = 10;
// checks if number is greater than 0
if (number > 0) {
System.out.println("The number is positive.");
}
System.out.println("This statement is always executed.");
}
}
输出:
The number is positive.
This statement is always executed.
在上面的示例中,我们有一个名为number
的变量。 这里,测试表达式检查number
是否大于0
(number > 0
)。
由于number
大于0
。 因此,测试表达式的求值结果为true
。 因此,将执行if
主体内部的代码。
现在,将number
的值更改为负整数。 假设 -5。
int number = -5;
如果使用新的number
值运行上述程序,则输出将是:
This statement is always executed.
在此,number
的值小于0
。 因此,测试表达式number > 0
求值为false
。 因此,执行if
的主体。
要了解有关测试表达式的更多信息,请访问 Java 关系运算符和 Java 逻辑运算符。
Java if...else
语句
如果将测试表达式求值为true
,则if
语句将执行代码的特定部分。 但是,如果将测试表达式求值为false
,则它什么也不做。
在这种情况下,我们可以使用可选的else
块。 如果将测试表达式求值为false
,则将执行else
块体内的语句。 在 Java 中,这称为if-else
语句。
if-else
语句的语法为:
if (expression) {
// codes
}
else {
// some other code
}
在这里,如果测试表达式为true
,我们的程序将执行一个任务(如果在块中,则在任务内部),如果测试表达式为false
,则将执行另一项任务(在else
块中,在任务内部)。
if...else
语句如何工作?
Java if-else
语句的原理
示例 2:Java if else
语句
class IfElse {
public static void main(String[] args) {
int number = 10;
// checks if number is greater than 0
if (number > 0) {
System.out.println("The number is positive.");
}
else {
System.out.println("The number is not positive.");
}
System.out.println("This statement is always executed.");
}
}
输出:
The number is positive.
This statement is always executed.
在上面的示例中,我们有一个名为number
变量。 这里,测试表达式检查number
是否大于0
(number > 0
)。
由于number
的值为10
,因此测试表达式的值为true
。 因此,将执行if
主体内部的代码。
现在,将number
的值更改为负整数。 假设-5
。
int number = -5;
如果使用新的number
值运行程序,则输出为:
The number is not positive.
This statement is always executed.
在此,number
的值为-5
。 因此,测试表达式的求值结果为false
。 因此,将执行else
主体内部的代码。
Java if..else..if
语句
在 Java 中,我们有一个if...else...if
梯形图,可用于执行多个其他块之间的一个代码块。
if (expression1) {
// codes
}
else if(expression2) {
// codes
}
else if (expression3) {
// codes
}
.
.
else {
// codes
}
在这里,if
语句从上到下执行。 一旦测试表达式为true
,就会执行if
语句主体内部的代码。 然后,程序控制跳到if-else-if
梯形图之外。
如果所有测试表达式均为false
,则执行else
主体内部的代码。
示例 3:Java if..else..if
语句
class Ladder {
public static void main(String[] args) {
int number = 0;
// checks if number is greater than 0
if (number > 0) {
System.out.println("The number is positive.");
}
// checks if number is less than 0
else if (number < 0) {
System.out.println("The number is negative.");
}
else {
System.out.println("The number is 0.");
}
}
}
输出:
The number is 0.
在上面的示例中,我们正在检查number
是正数,负数还是零。 在这里,我们有两个测试表达式:
number > 0
- 检查number
是否大于0
number < 0
- 检查number
是否小于0
在此,number
的值为0
。 因此,两个测试表达式的求值结果均为false
。 因此,将执行else
主体内部的语句。
Java 嵌套if..else
语句
在 Java 中,也可以在if..else
语句中包含if..else
语句。 它称为嵌套if...else
语句。
这是一个查找 3 个数字中最大的一个的程序:
示例 4:嵌套if...else
语句
class Number {
public static void main(String[] args) {
// declaring double type variables
Double n1 = -1.0, n2 = 4.5, n3 = -5.3, largestNumber;
// checks if n1 is greater than or equal to n2
if (n1 >= n2) {
// if...else statement inside the if block
// checks if n1 is greater than or equal to n3
if (n1 >= n3) {
largestNumber = n1;
}
else {
largestNumber = n3;
}
}
else {
// if..else statement inside else block
// checks if n2 is greater than or equal to n3
if (n2 >= n3) {
largestNumber = n2;
}
else {
largestNumber = n3;
}
}
System.out.println("The largest number is " + largestNumber);
}
}
输出:
The largest number is 4.5
注意:在上面的程序中,我们自己分配了变量的值来简化此操作。 但是,在实际应用中,这些值可能来自用户输入数据,日志文件,表单提交等。
Java 提供了一个称为三元运算符的特殊运算符,它是if..else
语句的一种简写形式。 要了解三元运算符,请访问 Java 三元运算符。