内容重点:
1. for语句的基本格式;
2. for和while的区别;
3. continue语句;
一,for语句的基本格式:
1,基本格式:
scala
体验AI代码助手
代码解读
复制代码
for ( 循环变量 <- 数据集) {]()
// 循环体代码
}
代码示例: 输出 1 - 10
scala
体验AI代码助手
代码解读
复制代码
object for01 {
def main(args: Array[String]): Unit = {
//for循环
//for v.s. while
//1, for循环适用于明确地知道循环起点和终点
//2, while适用于不确定循环次数的情况
//1,输出1-100
for(i <- 1 to 100) {
println(i)
/*
var i = 1
while(i <= 100){
println(i)
i += 1
{
*/
}
}
}
2,循环守卫
可以在循环中添加条件,如果条件成立就执行循环。这个叫循环守卫。 代码示例如下:
scala
体验AI代码助手
代码解读
复制代码
object for02 {
def main(args: Array[String]): Unit = {
/**
* 循环守卫
* 当后面的条件都满足的时候,才去执行循环体的内容
* 格式:
* for( 循环变量 <- 起点 to 终点; if(条件1);if(条件2)....){
* println(循环变量)
* }
*/
// 输出1-100 中的可以整除2,3,4的数字
for (i <- 1 to 100; if(i%2 == 0);if(i%3 == 0);if(i%4 == 0)){
println(i)
}
}
}
3,循环步长
代码示例如下:
scala
体验AI代码助手
代码解读
复制代码
object for02 {
def main(args: Array[String]): Unit = {
/**
* 循环步长
* 每次循环后,循环变量的自增数值
* 格式:
* for( 循环变量 <- 起点 to 终点 by 步长){
* println(循环变量)
* }
*/
// 输出1-100 中的奇数
for (j <- 1 to 100 by 20){
println(j)
}
}
}
4,循环的返回值
for也可以获取到返回值,使用yield。 代码示例如下:
scala
体验AI代码助手
代码解读
复制代码
val res = for(i <- 1 to 3) yield { i*2 }]()
println(res)
println(res(1))
5, continue
在scala中是没有break和continue关键字的,如果一定要用,可以用scala.util.control包下的Breaks类的break。代码示例如下:
scala
体验AI代码助手
代码解读
复制代码
import scala.util.control.Breaks.()
object for03 {
def main(args: Array[String]): Unit = {
for(i <- 1 to 10){
breakable {
if(i%3 == 0){
// continue
break
}
println(i)
}
}
}
}
6,习题示例如下:
判断是否为“素数”
scala
体验AI代码助手
代码解读
复制代码
object for03 {
def main(args: Array[String]): Unit = {
/**
* 判断素数
* 素数:只能被1 和 它本身整除的数
* eg:2.3.5.7.....
*
* 思路:用2-(n-1)依次除这个数,如果能整除就不是素数;
*/
val n = 97
// 假设是素数
var isPrime = true
for (i <- 2 to n-1){
if(n%i == 0){ //能整除
isPrime = false
}
}
if(isPrime){
println(s"${n}是素数")
}else{
println(s"${n}不是素数")
}
}
}