Java中的决策(if、if-else、switch、break、continue、jump)
编程中的决策类似于现实生活中的决策。在编程中还面临一些情况,我们希望在满足某些条件时执行某个代码块。
编程语言使用控制语句根据特定条件控制程序的执行流程。这些用于根据程序状态的变化使执行流程前进和分支。
Java 的选择语句:
- 如果
- 如果别的
- 嵌套如果
- 如果-否则-如果
- 开关盒
- 跳跃——休息、继续、返回
1. if: if语句是最简单的决策语句。它用于决定是否执行某个语句或语句块,即如果某个条件为真,则执行一个语句块,否则不执行。
语法:
if(condition)
{
// Statements to execute if
// condition is true
}
在这里,评估后的条件将是真或假。 if 语句接受布尔值——如果值为真,那么它将执行它下面的语句块。
如果我们在if(condition)之后没有提供花括号 '{' 和 '}',那么默认情况下 if 语句将认为直接的一条语句在其块内。例如,
if(condition)
statement1;
statement2;
// Here if the condition is true, if block
// will consider only statement1 to be inside
// its block.
例子:
Java
// Java program to illustrate If statement
class IfDemo {
public static void main(String args[])
{
int i = 10;
if (i > 15)
System.out.println("10 is less than 15");
// This statement will be executed
// as if considers one statement by default
System.out.println("I am Not in if");
}
}
Java
// Java program to illustrate if-else statement
class IfElseDemo {
public static void main(String args[])
{
int i = 10;
if (i < 15)
System.out.println("i is smaller than 15");
else
System.out.println("i is greater than 15");
}
}
Java
// Java program to illustrate nested-if statement
class NestedIfDemo {
public static void main(String args[])
{
int i = 10;
if (i == 10) {
// First if statement
if (i < 15)
System.out.println("i is smaller than 15");
// Nested - if statement
// Will only be executed if statement above
// it is true
if (i < 12)
System.out.println(
"i is smaller than 12 too");
else
System.out.println("i is greater than 15");
}
}
}
Java
// Java program to illustrate if-else-if ladder
class ifelseifDemo {
public static void main(String args[])
{
int i = 20;
if (i == 10)
System.out.println("i is 10");
else if (i == 15)
System.out.println("i is 15");
else if (i == 20)
System.out.println("i is 20");
else
System.out.println("i is not present");
}
}
Java
// Java program to illustrate using
// continue in an if statement
class ContinueDemo {
public static void main(String args[])
{
for (int i = 0; i < 10; i++) {
// If the number is even
// skip and continue
if (i % 2 == 0)
continue;
// If number is odd, print it
System.out.print(i + " ");
}
}
}
Java
// Java program to illustrate using return
class Return {
public static void main(String args[])
{
boolean t = true;
System.out.println("Before the return.");
if (t)
return;
// Compiler will bypass every statement
// after return
System.out.println("This won't execute.");
}
}
I am Not in if
2. if-else : if 语句单独告诉我们,如果条件为真,它将执行一个语句块,如果条件为假,则不会。但是,如果条件为假,我们想做其他事情怎么办。 else 语句来了。当条件为假时,我们可以使用 else 语句和 if 语句来执行代码块。
语法:
if (condition)
{
// Executes this block if
// condition is true
}
else
{
// Executes this block if
// condition is false
}
例子:
Java
// Java program to illustrate if-else statement
class IfElseDemo {
public static void main(String args[])
{
int i = 10;
if (i < 15)
System.out.println("i is smaller than 15");
else
System.out.println("i is greater than 15");
}
}
i is smaller than 15
时间复杂度: O(1)
辅助空间: O(1)
3.nested-if:一个嵌套的if是一个if语句,它是另一个if或else的目标。嵌套 if 语句意味着 if 语句中的 if 语句。是的, Java允许我们在 if 语句中嵌套 if 语句。即,我们可以在另一个 if 语句中放置一个 if 语句。
句法:
if (condition1)
{
// Executes when condition1 is true
if (condition2)
{
// Executes when condition2 is true
}
}
例子:
Java
// Java program to illustrate nested-if statement
class NestedIfDemo {
public static void main(String args[])
{
int i = 10;
if (i == 10) {
// First if statement
if (i < 15)
System.out.println("i is smaller than 15");
// Nested - if statement
// Will only be executed if statement above
// it is true
if (i < 12)
System.out.println(
"i is smaller than 12 too");
else
System.out.println("i is greater than 15");
}
}
}
i is smaller than 15
i is smaller than 12 too
时间复杂度: O(1)
辅助空间: O(1)
4. if-else-if 阶梯:在这里,用户可以在多个选项中做出决定。if 语句从上到下执行。一旦控制 if 的条件之一为真,就执行与 if 相关的语句,并绕过梯形图的其余部分。如果没有一个条件为真,那么最后的 else 语句将被执行。
if (condition)
statement;
else if (condition)
statement;
.
.
else
statement;
例子:
Java
// Java program to illustrate if-else-if ladder
class ifelseifDemo {
public static void main(String args[])
{
int i = 20;
if (i == 10)
System.out.println("i is 10");
else if (i == 15)
System.out.println("i is 15");
else if (i == 20)
System.out.println("i is 20");
else
System.out.println("i is not present");
}
}
i is 20
时间复杂度: O(1)
辅助空间: O(1)
5. switch-case: switch语句是多路分支语句。它提供了一种简单的方法,可以根据表达式的值将执行分派到代码的不同部分。
句法:
switch (expression)
{
case value1:
statement1;
break;
case value2:
statement2;
break;
.
.
case valueN:
statementN;
break;
default:
statementDefault;
}
- 表达式可以是 byte、short、int char 或枚举类型。从 JDK7 开始,表达式也可以是字符串类型。
- 不允许有重复的大小写值。
- 默认语句是可选的。
- break 语句用于在 switch 内部终止语句序列。
- break 语句是可选的。如果省略,则执行将继续到下一个案例。
6、跳转: Java支持三种跳转语句: break、continue和return 。这三个语句将控制权转移到程序的另一部分。
- 中断:在Java中,中断主要用于:
- 在 switch 语句中终止一个序列(上面讨论过)。
- 退出循环。
- 用作 goto 的“文明”形式。
- 继续:有时强制循环的早期迭代很有用。也就是说,您可能希望继续运行循环,但停止处理此特定迭代的主体中的其余代码。实际上,这是一个 goto 刚经过循环体,到循环结束的方式。 continue 语句执行这样的操作。
例子:
Java
// Java program to illustrate using
// continue in an if statement
class ContinueDemo {
public static void main(String args[])
{
for (int i = 0; i < 10; i++) {
// If the number is even
// skip and continue
if (i % 2 == 0)
continue;
// If number is odd, print it
System.out.print(i + " ");
}
}
}
1 3 5 7 9
时间复杂度: O(1)
辅助空间: O(1)
- 返回: return 语句用于显式地从方法返回。也就是说,它使程序控制权转移回方法的调用者。
例子:
Java
// Java program to illustrate using return
class Return {
public static void main(String args[])
{
boolean t = true;
System.out.println("Before the return.");
if (t)
return;
// Compiler will bypass every statement
// after return
System.out.println("This won't execute.");
}
}
Before the return.
时间复杂度: O(1)
辅助空间: O(1)