📌  相关文章
📜  Java中的决策(if、if-else、switch、break、continue、jump)

📅  最后修改于: 2022-05-13 01:55:27.706000             🧑  作者: Mango

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中的if语句

例子:

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
}

if-else 语句

例子:

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;

if-else-if-阶梯

例子:

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、continuereturn 。这三个语句将控制权转移到程序的另一部分。

  • 中断:在Java中,中断主要用于:
    • 在 switch 语句中终止一个序列(上面讨论过)。
    • 退出循环。
    • 用作 goto 的“文明”形式。
  • 继续:有时强制循环的早期迭代很有用。也就是说,您可能希望继续运行循环,但停止处理此特定迭代的主体中的其余代码。实际上,这是一个 goto 刚经过循环体,到循环结束的方式。 continue 语句执行这样的操作。

在java中继续

例子:

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)