fou循环

50 阅读1分钟

一、循环

1、while循环行,条件不满足时不执行;

2、do...while循环:至少要执行一次,先执行再判断条件。

object iphone3promax {
  def main(args: Array[String]): Unit = {
    var i=100
    do{
      println(i)
      i=i+1
    }while(i<=10)
    println("欢迎下次使用!")
  }
}

3、例题

(1)1 + 1/2 + 1/3 + ... + 1/19的和

object iphone2plus {
  def main(args: Array[String]): Unit = {
    var sum = 0.0
    var i = 1.0
    while (i <= 19) {
      println(i)
      sum += 1.0/i
      i = 1 + i
    }
    println(s"1 + 1/2 + 1/3 + ... + 1/19 = $sum")
  }
}

(2)1 - 1/2 + 1/3 - 1/4 + ... + 1/19

object iphone2plus {
  def main(args: Array[String]): Unit = {
//    var sum = 0.0
//    var i = 1.0
//    while (i <= 19) {
//      println(i)
//      sum += 1.0/i
//      i = 1 + i
//    }
//    println(s"1 + 1/2 + 1/3 + ... + 1/19 = $sum")
    var sum = 0.0    // 用于存储总和
    var i = 1        // 循环计数器,从1开始
    var sign = 1     // 符号变量,用于交替变化,1表示正,-1表示负

    // 使用while循环计算交错调和级数之和
    while (i <= 19) {
      sum += sign * (1.0 / i)  // 根据符号添加当前项
      sign = -sign             // 切换符号
      i += 1                   // 计数器自增
    }

    // 输出结果
    println(s"1 - 1/2 + 1/3 - 1/4 + ... + 1/19 = $sum")
  }
}

二、素数

1. 只能被1和它本身整除的数是素数。2 3 5 7 11 13 17 19...

2. 可以从2开始到n-1为止,依次去除这个数n,如果能被除,就不是素数。

例题、利用循环判断9是否为素数

object iphone3 {
  def main(args: Array[String]): Unit = {
  var num = 9
    var isPrime = true
    var i = 2
    while (i<=num-1){
      if(num%i==0){
        isPrime = false
        println(s"${num}能被${i}整除")
      }
      i+=1
    }
if(isPrime){
  println(s"${num}是素数")
} else{
  println(s"${num}不是素数")
}
  }
}

三、复利公式

题目描述:假设某人的年化投资回报率是10%。也就是说投入1元之后:

第一年结束时有1.1元,计算过程是:1 *(1+10%) = 1.1

第二年结束时有1.21元,计算过程是:1.1*(1+10%) = 1.21元,

第三年结束时有1.331元,计算过程是:1.21*(1+10%) = 1.331元,

编写程序:

1、求它第10年结束时有多少元?

object iphone3pro {
  def main(args: Array[String]): Unit = {
    var i = 0 // 年份
    var money = 1.0 // 初始金额
    while(i < 10){
      money = money * 1.1
      i+=1
      println(s"经过${i}年后,总金额是${money}")
    }
    println(s"经过${i}年后,总金额是${money}")
  }
}

2、多少年之后能超过1000元?

object iphone3pro {
  def main(args: Array[String]): Unit = {
    var i = 0 // 年份
    var money = 1.0 // 初始金额
    while(money<=1000){
      money = money * 1.1
      i+=1
      println(s"经过${i}年后,总金额是${money}")
    }
    println(s"经过${i}年后,总金额是${money}")
  }
}

三、for循环

1、循环步长

object iphone3promax {
  def main(args: Array[String]): Unit = {
    var sum = 0//by:步长,循序变量每次增加的值,默认就是1.
    for(i<-1 to 100 by 2){
      println(i)
      sum +=i
    }
    println(sum)
  }
}

2、例题

for循环计算1 - 1/2 + 1/3 - 1/4 + ... + 1/19

object iphone3plus {
  def main(args: Array[String]): Unit = {
    var sum = 0.0  // 用于存储总和

    // 使用for循环计算交错调和级数之和
    for (i <- 1 to 19) {
      // 确定当前项的符号:奇数项为正,偶数项为负
      val sign = if (i % 2 == 1) 1 else -1
      sum += sign * (1.0 / i)  // 累加当前项
    }

    // 输出结果,保留6位小数
    println(f"1 - 1/2 + 1/3 - 1/4 + ... + 1/19 = $sum%.6f")
  }
}