📜  斯卡拉 |决策(if、if-else、嵌套 if-else、if-else if)

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

斯卡拉 |决策(if、if-else、嵌套 if-else、if-else if)

编程中的决策类似于现实生活中的决策。在决策制定中,当满足给定条件时执行一段代码。有时这些也称为控制流语句。 Scala 使用控制语句根据特定条件控制程序的执行流程。这些用于根据程序状态的变化使执行流程前进和分支。

Scala 的条件语句是:

  • 如果
  • 如果别的
  • 嵌套 if-else
  • if-else if 阶梯

if 语句

if ”语句是所有决策语句中最简单的决策语句。在此语句中,代码块仅在给定条件为真时执行,如果条件为假,则该代码块将不会执行。

句法:

if(condition)
{
    // Code to be executed 
}

在这里,评估后的条件将是真或假。 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.

流程图:

例子:

// Scala program to illustrate the if statement
object Test {
      
// Main Method
def main(args: Array[String]) {
      
    // taking a variable
    var a: Int = 50
  
    if (a > 30) 
    {
  
        // This statement will execute as a > 30
        println("GeeksforGeeks")
    }
}
}

输出:

GeeksforGeeks

if-else 语句

单独的 if 语句告诉我们,如果条件为真,它将执行一个语句块,如果条件为假,则不会。但是,如果条件为假,我们想做其他事情怎么办。 else 语句来了。当条件为假时,我们可以使用 else 语句和 if 语句来执行代码块。

句法:

if (condition)
{
    // Executes this block if
    // condition is true
}

else
{
    // Executes this block if
    // condition is false
}

流程图:

例子:

// Scala program to illustrate the if-else statement
object Test {
      
// Main Method
def main(args: Array[String]) {
      
    // taking a variable
    var a: Int = 650
  
    if (a > 698) 
    {
  
        // This statement will not 
        // execute as a > 698 is false
        println("GeeksforGeeks")
    }
      
    else
    {
          
        // This statement will execute
        println("Sudo Placement")
    }
}
}

输出:

Sudo Placement

嵌套 if-else 语句

嵌套 if是一个if 语句,它是另一个if-else语句的目标。嵌套if-else语句是指 if 语句或 else 语句中的if-else语句。 Scala 允许我们在 if-else 语句中嵌套if- else语句。

句法:

// Executes when condition_1 is true
if (condition_1) 
{

   if (condition_2) 
   {

      // Executes when condition_2 is true
   }

  else
  {

     // Executes when condition_2 is false
  }

}

// Executes when condition_1 is false
else
{
     
   if (condition_3) 
   {

      // Executes when condition_3 is true
   }

  else
  {

     // Executes when condition_3 is false
  }

}

流程图:

例子:

// Scala program to illustrate 
// the nested if-else statement
object Test {
      
// Main Method
def main(args: Array[String]) {
      
    // taking three variables
    var a: Int = 70
    var b: Int = 40
    var c: Int = 100
  
    // condition_1
    if (a > b) 
    {
        // condition_2
        if(a > c)
        {
            println("a is largest");
        }
          
        else
        {
            println("c is largest")
        }
      
    }
      
    else
    {
          
         // condition_3
        if(b > c)
        {
            println("b is largest")
        }
          
        else
        {
            println("c is largest")
        }
    }
}
}

输出:

c is largest

if-else if 阶梯

在这里,用户可以在多个选项中做出决定。 if语句是自上而下执行的。一旦控制if的条件之一为真,就执行与if相关的语句,并绕过梯形图的其余部分。如果没有一个条件为真,那么最后的else语句将被执行。

句法:

if(condition_1)
{

     // this block will execute 
     // when condition_1 is true
}

else if(condition_2)
{

    // this block will execute 
    // when condition2 is true
}
.
.
.

else 
{

      // this block will execute when none
     // of the condition is true
}

流程图:

例子:

// Scala program to illustrate 
// the if-else-if ladder 
object Test {
      
// Main Method    
def main(args: Array[String]) {
      
    // Taking a variable
    var value: Int = 50
  
    if (value == 20) 
    {
  
        // print "value is 20" when 
        // above condition is true
        println("Value is 20")
    } 
      
    else if (value == 25) 
    {
  
        // print "value is 25" when 
        // above condition is true
        println("Value is 25")
    } 
      
    else if (value == 40)
    {
      
        // print "value is 40" when 
        // above condition is true
        println("Value is 40")
  
    } 
      
    else 
    {
          
        // print "No Match Found" 
        // when all condition is false
        println("No Match Found")
    }
}
}

输出:

No Match Found