下面是一个典型的决策中IF...ELSE结构的一般形式使用在大多数的编程语言中:
if 语句:
if 语句包含一个布尔表达式后跟一个或多个语句。
语法:
一个 if 语句的语法:
if(Boolean_expression)
{
// Statements will execute if the Boolean expression is true
}
如果布尔表达式的值为true,那么if语句里面的代码模块将被执行。如果不是这样,第一组码if语句结束后(右大括号后)将被执行。
示例:
object Test {
def main(args: Array[String]) {
var x = 10;
if( x < 20 ){
println("This is if statement");
}
}
}
这将产生以下输出结果:
C:/>scalac Test.scala
C:/>scala Test
This is if statement
C:/>
if...else语句:
if语句可以跟着一个可选的else语句,当 else 块执行时,布尔表达式条件是假的。
语法:
if...else的语法是:
if(Boolean_expression){
//Executes when the Boolean expression is true
}else{
//Executes when the Boolean expression is false
}
示例:
object Test {
def main(args: Array[String]) {
var x = 30;
if( x < 20 ){
println("This is if statement");
}else{
println("This is else statement");
}
}
}
这将产生以下结果:
C:/>scalac Test.scala
C:/>scala Test
This is else statement
C:/>
if...else if...else语句:
if语句可以跟着一个可选的else if ... else语句,这是非常有用的使用 if...else if如果测试各种条件声明。
当使用 if , else if , else 语句有几点要牢记。
· if可以有零或一个else,它必须跟在else if后面。
· 一个if 可以有零到多个else if,并且它们必须在else之前。
· 一旦一个 else if 匹配成功,剩余的else if或else不会被测试匹配。
语法:
if...else if...else的语法是:
if(Boolean_expression 1){
//Executes when the Boolean expression 1 is true
}else if(Boolean_expression 2){
//Executes when the Boolean expression 2 is true
}else if(Boolean_expression 3){
//Executes when the Boolean expression 3 is true
}else {
//Executes when the none of the above condition is true.
}
示例:
object Test {
def main(args: Array[String]) {
var x = 30;
if( x == 10 ){
println("Value of X is 10");
}else if( x == 20 ){
println("Value of X is 20");
}else if( x == 30 ){
println("Value of X is 30");
}else{
println("This is else statement");
}
}
}
这将产生以下结果:
C:/>scalac Test.scala
C:/>scala Test
Value of X is 30
C:/>
if ... else语句嵌套:
它始终是合法的嵌套 if-else 语句,这意味着可以使用一个 if 或 else if 在另一个if 或else if 语句中。
语法:
语法嵌套 if...else 如下:
if(Boolean_expression 1){
//Executes when the Boolean expression 1 is true
if(Boolean_expression 2){
//Executes when the Boolean expression 2 is true
}
}
可以嵌套else if...else在if语句中,反之也可以。
示例:
object Test {
def main(args: Array[String]) {
var x = 30;
var y = 10;
if( x == 30 ){
if( y == 10 ){
println("X = 30 and Y = 10");
}
}
}
}
这将产生以下结果:
C:/>scalac Test.scala
C:/>scala Test
X = 30 and Y = 10
C:/>
可能有一种情况,当需要多次执行代码的几个块。在一般情况下,语句顺序执行:在一个函数的第一条语句,首先执行,然后是第二个等等。
编程语言提供了各种控制结构,允许更多复杂的执行路径。
循环语句可以执行语句多次或多组,下面是在大多数编程语言和循环语句一般如下:
Scala编程语言提供了以下循环类型的处理循环需求。点击以下链接查看其详细信息。
循环类型 | 描述 |
重复声明语句或一组,当给定的条件为真。它测试条件执行循环体前。 | |
像一个while语句,不同之处在于它测试条件在循环体的结尾 | |
执行语句多次序列并简写管理循环变量的代码。 |
循环控制语句:
循环控制语句改变其正常的顺序执行。当执行离开一个范围,在该范围内创建的所有对象自动被销毁。但是Scala不支持break或continue语句,想要像Java,但从Scala2.8版本开始,有一种方法可以打退出循环。点击以下链接查看详细信息。
控制语句 | 描述 |
终止循环语句并将执行立刻循环的下面语句。 |
无限循环:
一个循环变成无限循环,如果条件永远不会为假。如果使用Scala,while循环是实现无限循环的最佳方式,如下:
object Test {
def main(args: Array[String]) {
var a = 10;
// An infinite loop.
while( true ){
println( "Value of a: " + a );
}
}
}
如果将上面的代码执行,它会在无限循环可以通过按Ctrl+ C键终止。
while 循环语句多次执行,只要给定的条件为真执行目标语句。
语法:
Scala while循环的语法是:
while(condition){
statement(s);
}
在这里,声明可以是单个语句或语句块。所述条件可以是任何表达式,真值是任何非零值。当条件为true,则循环迭代。当条件为faklse,则程序控制进到紧接在循环之后的行。
流程图:
在这里,while循环的关键点是循环可能不会永远运行。当条件测试结果为false,循环体将跳过while循环后的第一个语句执行。
示例:
object Test {
def main(args: Array[String]) {
// Local variable declaration:
var a = 10;
// while loop execution
while( a < 20 ){
println( "Value of a: " + a );
a = a + 1;
}
}
}
当上述代码被编译和执行时,它产生了以下结果:
C:/>scalac Test.scala
C:/>scala Test
value of a: 10
value of a: 11
value of a: 12
value of a: 13
value of a: 14
value of a: 15
value of a: 16
value of a: 17
value of a: 18
value of a: 19
C:/>
from: http://www.yiibai.com/scala/scala_basic_syntax.html