scala for循环

package cn.tedu.scala

object Demo {

// public static void main(String[] args){}
// 在Scala中,所有的方法和类只要不指定默认就是public的,所以导致在Scala中没有public关键字
// 使用def来定义函数
// Scala中不只是static关键字,在object中定义函数默认都是static的
// Scala中不支持void关键字,如果一个函数返回值为空,则返回值定义为Unit类型
// Scala中注重参数而不注重类型,所以在定义参数的时候是参数名在前,类型在后
def main(args: Array[String]): Unit = {

// Scala中不推荐使用;
// 默认一行就是一条语句,除非这一行有多条语句,那么语句之间才会使用;间隔
println("hello world!!!")
println("hi scala")

}

}

// class中定义的函数全部都是非静态的
class Test {

def test(): Unit = {}

}


package cn.tedu.scala

object ForDemo {

def main(args: Array[String]): Unit = {

// 循环结构只要不指定,返回值默认就是Unit类型
// while
// 打印5个hello
//    var i = 0;
//    var result: Unit = while (i < 5) {
//      println("hello")
//      i += 1
//    }

// Scala中的for循环结构产生了变化
// for(to)
// for(until)
// 打印0-5
// 通过调用to()方法表示截止数据
// 调用方法的时候只有1个参数,写法进行简化
// [0,5]
//    for (i <- 0.to(5)) {
for (i <- 0 to 5) {
  println(i)
}

// [0,5)
//    for (i <- 0.until(5)) {
for (i <- 0 until 5) {
  println(i)
}

// 打印1,3,5,7,9
for (i <- 1.until(10, 2))
  println(i)
println("**************************")
// 打印5->0
//    for (i <- 0.to(5).reverse)
for (i <- 0 to 5 reverse)
  println(i)

// 打印100以内5的倍数但是不是7的倍数
//      for(i <- 1 to 100){
//        if(i % 5 ==0 & i % 7 != 0)
//          println(i)
//      }
// 守护嵌套
for (i <- 1 to 100 if (i % 5 == 0 && i % 7 != 0)) 
  println(i)

}

}


package cn.tedu.scala

object ForDemo {

def main(args: Array[String]): Unit = {

// 循环结构只要不指定,返回值默认就是Unit类型
// while
// 打印5个hello
//    var i = 0;
//    var result: Unit = while (i < 5) {
//      println("hello")
//      i += 1
//    }

// Scala中的for循环结构产生了变化
// for(to)
// for(until)
// 打印0-5
// 通过调用to()方法表示截止数据
// 调用方法的时候只有1个参数,写法进行简化
// [0,5]
//    for (i <- 0.to(5)) {
for (i <- 0 to 5) {
  println(i)
}

// [0,5)
//    for (i <- 0.until(5)) {
for (i <- 0 until 5) {
  println(i)
}

// 打印1,3,5,7,9
for (i <- 1.until(10, 2))
  println(i)
println("**************************")
// 打印5->0
//    for (i <- 0.to(5).reverse)
for (i <- 0 to 5 reverse)
  println(i)

// 打印100以内5的倍数但是不是7的倍数
//      for(i <- 1 to 100){
//        if(i % 5 ==0 & i % 7 != 0)
//          println(i)
//      }
// 守护嵌套
for (i <- 1 to 100 if (i % 5 == 0 && i % 7 != 0)) 
  println(i)

}

}


package cn.tedu.scala

object ForDemo2 {

def main(args: Array[String]): Unit = {

// 打印*组成的三角
/*
 * *
 * **
 * ***
 * ****
 * *****
 * ******
 */
// 在Scala中,字符串可以进行乘法运算的
//    for (i <- 1 to 6) {
//      println("*" * i)
//    }
// 打印3个+
//    println("+" * 3)

/*
 * ******
 * ******
 * ******
 * ******
 * ******
 */
//    for (i <- 1 to 5) {
//      println("*" * 6)
//    }

// x:1->5,y:1->6
// 打印x和y的组合情况
//    for (x <- 1 to 5)
//      for (y <- 1 to 6)
//        println(s"x=${x}, y=${y}")

// 嵌套循环,两次条件是用;隔开的
//    for (x <- 1 to 5; y <- 1 to 6)
//      println(s"x=${x}, y=${y}")
// 等价于
//    for {
//      x <- 1 to 5
//      y <- 1 to 6
//    } println(s"x=${x}, y=${y}")

// 打印九九乘法表
for {
  i <- 1 to 9
  j <- 1 to i
} {
  print(s"${i}*${j}=" + i * j + "\t")
  if (i == j)
    println()
}

// 构建集合,集合中的元素是2,4,6,8,10
// for循环的指定计算结果返回放入一个集合中
//    var result = for (i <- 1 to 5) yield i * 2
//    println(result)

// 定义数组
// 方式一:指定初始大小
var arr = new Array[Int](5)
// 方式二:指定初始值
//    var arr: Array[Int] = Array(2, 4, 6, 8, 10)
//    var arr: Array[Int] = Array[Int](2, 4, 6, 8, 10)

// 遍历这个数组
// 方式一:下标遍历
//    for (i <- 0 until arr.length)
//      println(arr(i))
// for(int i:arr)
// 方式二:增强for循环
for (i <- arr) {
  println(i)
}

}

}


package cn.tedu.scala

//等价于Java中的*
import scala.util.control.Breaks.

object ForDemo3 {

def main(args: Array[String]): Unit = {

//    for (i <- 1 to 10 if i % 3 != 0)
//      println(i)

// 提供了Breaks类来达到类似于break的效果
breakable {
  for (i <- 1 to 10) {
    if (i % 3 == 0) {
      // 调用了break方法,方法没有参数
      // 如果一个方法在调用的时候没有参数,那么可以省略()
      //   break()
      break
    }
    println(i)
  }
}
println("循环执行完成~~~")

}

}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值