一、循环
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")
}
}