在本教程中,您将在示例的帮助下了解Java中的控制流语句,使用Java的if和if ... else语句。
在计算机编程中,通常希望根据指定的条件是true 或 false(仅在运行时才知道)执行代码的特定部分。在这种情况下,将使用控制流语句。
在Java中,if-then语句的语法为:
if (expression) { // 语句 }
这是一个布尔表达式(expression)。布尔表达式返回 true 或 false。
如果将表达式计算为true,则将if执行(大括号内的语句)主体内部的语句
如果表达式的计算结果为false,则if主体内的语句将被跳过
class IfStatement { public static void main(String[] args) { int number = 10; //检查数字是否大于0 if (number > 0) { System.out.println("这个数字是正数。"); } System.out.println("该语句始终被执行。"); } }
输出:
这个数字是正数。 该语句始终被执行。
在上面的示例中,我们有一个名为number的变量。在此,测试表达式检查number是否大于0(number > 0)。
由于number大于0。因此,测试表达式的计算结果为true。同时,将执行if内的代码。
现在,将的值更改number为负整数。假设为 -5。
int number = -5;
如果我们使用的新值运行上述程序number,则将仅输出为:
该语句始终被执行。
在此,number的值小于0。因此,测试表达式 number > 0,的计算结果为 false。因此,if内的语句不会被执行。
要了解有关测试表达式的更多信息,请访问Java 关系运算符 和Java 逻辑运算符。
如果if语句测试表达式的计算结果为true,则该语句执行代码的特定部分。但是,如果测试表达式的计算结果为false,则它不会执行任何操作。
在这种情况下,我们可以使用可选 else 代码块。如果测试表达式的计算结果为false,则执行块体内的else语句。这在Java中称为if-then-else语句。
if-then-else语句的语法为:
if (expression) { // 代码 } else { // 其他代码 }
在这里,如果测试表达式为true,我们的程序将执行一个任务(if块内的任务),如果测试表达式为false,则另一项任务(else代码块内的任务)。
class IfElse { public static void main(String[] args) { int number = 10; //检查数字是否大于0 if (number > 0) { System.out.println("该数字为正。"); } else { System.out.println("该数字不是正数。"); } System.out.println("This statement is always executed."); } }
输出:
该数字为正。 该语句始终被执行。
在上面的示例中,我们有一个名为number的变量。在此,测试表达式检查number是否大于0(number > 0)。
由于number的值为10,因此测试表达式的计算结果为true。因此,将执行if内的代码。
现在,将的值更改number为负整数。比方说 -5。
int number = -5;
如果我们使用的新值运行程序number,则输出为:
该数字不是正数。 该语句始终被执行。
在这里,number的值是-5。因此,测试表达式的计算结果为false。所以将执行else内的代码。
在Java中,我们有一个if ... else ... if 阶梯语句,可用于在多个其他代码块之间执行其中一个代码块。
if (expression1) { // 代码 } else if(expression2) { // 代码 } else if (expression3) { // 代码 } . . else { // 代码 }
在这里,if语句从上到下执行。一旦测试表达式为true,就执行该if语句主体内的代码。然后,程序的控制跳到if-else-if阶梯语句外面。
如果所有测试表达式均为false,则执行else主体内的代码。
class Ladder { public static void main(String[] args) { int number = 0; //检查数字是否大于0 if (number > 0) { System.out.println("这个数字是正数。"); } //检查数字是否小于0 else if (number < 0) { System.out.println("该数字为负数。"); } else { System.out.println("数字是0。"); } } }
输出:
数字是0。
在上面的示例中,我们正在检查变量number是正数,负数还是零。在这里,我们有两个测试表达式:
number > 0 - 检查 number大于0
number < 0 - 检查 number小于0
在这里,number的值是0。因此,两个测试表达式的计算结果均为false。因此,执行了else主体内部的语句。
在Java中,也可以在if..else语句内if..else语句。这称为嵌套if...else语句。
这是一个查找3个数字中,最大的一个数字的程序:
class Number { public static void main(String[] args) { //声明双精度类型变量 Double n1 = -1.0, n2 = 4.5, n3 = -5.3, largestNumber; //检查n1是否大于或等于n2 if (n1 >= n2) { //if ... else语句在if块内 // 检查n1是否大于或等于n3 if (n1 >= n3) { largestNumber = n1; } else { largestNumber = n3; } } else { //else块中的if...else语句 //检查n2是否大于或等于n3 if (n2 >= n3) { largestNumber = n2; } else { largestNumber = n3; } } System.out.println("最大的数字是 " + largestNumber); } }
输出:
最大的数字是 4.5
注意:在上面的程序中,我们自己分配了变量的值,以简化演示过程。但是,在实际应用中,这些值可能来自用户输入数据,日志文件,表单提交等。
Java提供了一种称为三元运算符的特殊运算符,它是if ... else语句的一种简写形式。要了解三元运算符,请访问Java三元运算符。