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("循环执行完成~~~")
}
}