条件判断
这个没得说看代码吧
if(布尔表达式)
{
// 如果布尔表达式为 true 则执行该语句块
}
if(布尔表达式){
// 如果布尔表达式为 true 则执行该语句块
}else{
// 如果布尔表达式为 false 则执行该语句块
}
if(布尔表达式 1){
// 如果布尔表达式 1 为 true 则执行该语句块
}else if(布尔表达式 2){
// 如果布尔表达式 2 为 true 则执行该语句块
}else if(布尔表达式 3){
// 如果布尔表达式 3 为 true 则执行该语句块
}else {
// 如果以上条件都为 false 执行该语句块
}
object If {
def main(args: Array[String]): Unit = {
ifFunction("张三")
ifElseFunction("李四")
ifElseIfFunction("")
}
def ifFunction(name: String): Unit ={
if (name == "张三"){
println("张三")
}
}
def ifElseFunction(name: String): Unit ={
if (name == "张三"){
println("张三")
}else{
println("不是张三")
}
}
def ifElseIfFunction(name: String): Unit ={
if (name == "张三"){
println(name)
}else if (name == "李四"){
println("李四")
}else{
println("未知")
}
}
}
循环
while循环
while(condition)
{
statement(s);
}
object Circle {
def main(args: Array[String]): Unit = {
whileFunction(20)
}
def whileFunction(a: Int) = {
var i = 0
while (i < a){
println(i)
i += 1
}
}
}
do…while 循环
do {
statement(s);
} while( condition );
注意:
条件表达式出现在循环的尾部,所以循环中的 statement(s) 会在条件被测试之前至少执行一次。
object Circle {
def main(args: Array[String]): Unit = {
doWhileFunction(0)
}
def doWhileFunction(a: Int) = {
var i = 0
do{
println(i)
i += 1
} while (i < a)
}
}
for循环
for( var x <- Range ){
statement(s);
}
注意:
以上语法中,Range 可以是一个数字区间表示 i to j ,或者 i until j。左箭头 <- 用于为变量 x 赋值。
object Circle {
def main(args: Array[String]): Unit = {
//0 to 20 包含20
forFunction()
//0 until 20 不包含20
forFunction2()
}
def forFunction() = {
for (i <- 0 to 20; if i % 2 == 0) {
println(i)
}
}
def forFunction2() = {
for (i <- 0 until 20; if i % 2 == 0) {
println(i)
}
}
}
for 使用 yield
for循环中的 yield 会把当前的元素记下来,保存在集合中,循环结束后将返回该集合。Scala中for循环是有返回值的。如果被循环的是Map,返回的就是Map,被循环的是List,返回的就是List,以此类推。
def forFunction3() = {
println(for (i <- 1 to 5) yield i) //Vector(1, 2, 3, 4, 5)
}
def forFunction4() = {
val arr = Array("1", "2", "3")
(for (item <- arr) yield item).foreach(println(_))// 1 2 3
}
小练习打印乘法口诀表
object Circle {
def main(args: Array[String]): Unit = {
multiTable1()
//变换下写法
multiTable2()
}
def multiTable1() = {
for (i <- 1 to 9) {
for (j <- 1 to i) {
print(s"$j * $i = ${i * j};\t")
}
println()
}
}
def multiTable2() = {
(for (i <- 1 to 9; j <- 1 to i; s = s"$j * $i = ${i*j};\t" ) yield if (i == j) s"$s \n" else s).foreach(print)
}
}
1 * 1 = 1;
1 * 2 = 2; 2 * 2 = 4;
1 * 3 = 3; 2 * 3 = 6; 3 * 3 = 9;
1 * 4 = 4; 2 * 4 = 8; 3 * 4 = 12; 4 * 4 = 16;
1 * 5 = 5; 2 * 5 = 10; 3 * 5 = 15; 4 * 5 = 20; 5 * 5 = 25;
1 * 6 = 6; 2 * 6 = 12; 3 * 6 = 18; 4 * 6 = 24; 5 * 6 = 30; 6 * 6 = 36;
1 * 7 = 7; 2 * 7 = 14; 3 * 7 = 21; 4 * 7 = 28; 5 * 7 = 35; 6 * 7 = 42; 7 * 7 = 49;
1 * 8 = 8; 2 * 8 = 16; 3 * 8 = 24; 4 * 8 = 32; 5 * 8 = 40; 6 * 8 = 48; 7 * 8 = 56; 8 * 8 = 64;
1 * 9 = 9; 2 * 9 = 18; 3 * 9 = 27; 4 * 9 = 36; 5 * 9 = 45; 6 * 9 = 54; 7 * 9 = 63; 8 * 9 = 72; 9 * 9 = 81;