for循环的使用

57 阅读2分钟

一.for循环的使用


//for ( 循环变量 <- 数据集) {}
   //循环体代码

for (i <- 10 to 100){
 println(i)
}

for的基本格式

/**  循环守卫
*    当后面的条件都满足的时候,才去执行循环体的内容
 *
 *    格式:
 *    for(循环变量 <- 起点 to 终点; if(条件一);if(条件二);...if(条件三);){
 *        println(循环变量)
 *       }
 *
 *
 */

// 输出1~100 中能整除2,3,4的数字
for(i <- 1 to 100; if(i%2 == 0);if(i%4 == 0)){
  println(i)
}

for的循环守卫

/**  循环步长
 *    在每次循环后,循环变量的自增数值
 *
 *    格式:
 *    for(循环变量 <- 起点 to 终点 by 步长){
 *        println(循环变量)
 *       }
 *
 *
 **/

// 输出1~100 中的奇数
for(i <- 99 to 1 by -2){
  println(i)
}

for的循环步长

/**
 *    break跳出 for 循环
 *
 *    格式:
 *    for(循环变量 <- 起点 to 终点 by 步长){
 *        println(循环变量)
 *       }
 *
 *
 **/

//
breakable{
  for(i <- 1 to 100){
    if(i%9 == 0){
      break
    }
    println(i)
  }
}
}

for循环中的break跳出循环,注意breakable和break依旧需要手动引用

二.判断一个数是不是素数

/**
 *    判断素数:
 *      素数: 只能被1 和自己整除的数。
 *      eg:2,3,5,7,11...97
 *
 *      思路:用2~(n-1)依次去除这个数,如果能整除就说明不是素数!
 *      例如:
 *      n=9
 *      1.2不能整除
 *      2.3不能整除(不是素数)
 *
 *      n=35
 *      1,2不能整除
 *      2.3不能整除
 *      3.4不能整除
 *      4.5能整除(不是素数)
 *
 *      n=7 (2~6)
 *      1.2不能被整除
 *      2.3不能整除
 *      3.4不能整除
 *      4.5不能整除
 *      5.6不能整除
 *
 **/

思路简述

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}不是素数")
  }
}

初步写出代码

val n =97
  //  假设它是素数
var isPrime = true
breakable {
  for(i <- 2 to Math.sqrt(n).toInt){
    if(n%i == 0){//能整除
      isPrime = false
      // }
      break
    }
    println(i)
}
  if(isPrime){
  println(s"${n}是素数")
  }else {
    println(s"${n}不是素数")
  }
}

使用breakable和break优化代码,使其可以提前结束代码