(一)do while循环
object Base22 {
def main(args: Array[String]): Unit = {
// while
// 特点: 先判断条件,再执行。所以,条件不满足时,循环体不会执行
// do .... while
// 特点: 至少要执行一次! 先执行,再判断条件。
var i = 100
do {
println(i)
i = i + 1
} while (i <= 10)
// var i = 100
// while (i <= 10) {
// println(i)
// i = i + 1
// }
println("欢迎下次使用")
}
}
如下示意图
(二)计算 求s = 1 + 1/2 + 1/3 + 1/4 + 1/5...+1/19的值
object Base23 {
def main(args: Array[String]): Unit = {
// 计算 1 + 2 + 3 +... + 19 的和
var i = 1
var sum1 = 0
while (i <= 19) {
sum1 = sum1 + i
i = i + 1
}
println(s"1 + 2 + 3 +... + 19 = $sum1")
// 求s = 1 + 1/2 + 1/3 + 1/4 + 1/5...+1/19的值
// 初始化和为0.0(使用Double类型以保留小数)
var sum = 0.0
// 从1循环到19
var i = 1
while (i <= 19) {
// 累加1.0除以当前整数i
sum += 1.0 / i
i += 1
}
// 输出结果,保留6位小数
println(f"1 + 1/2 + 1/3 + ... + 1/19 = $sum%.6f")
}
}
(三)判断一个数,是不是素数?
object Base24 {
def main(args: Array[String]): Unit = {
// 判断一个数,是不是素数?
// 素数,只有1和它本身能被整除。
// 2, 3, 5, 7, 11, 13, ...... , 97
// 思路
// 1. 假设它是一个素数。
// 2. 循环
// 使用 2,3,4,...num-1 去除 num,如果能整除,说明 num 不是素数
// 3. 循环结束,输出结果
var num = 121
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 年结束时有多少元?
2、多少年之后能超过 1000 元?
object Base25 {
def main(args: Array[String]): Unit = {
var i = 0
var money = 1.0 //本金
// while(i < 10){
while(money < 1000){
money = money * 1.1
i = i + 1
println(s"第${i}年结束时,钱数为${money}")
// 多少年之后能超过1000元
}
println(i)
}
}
结果
(五) 从1~10
object Base26 {
def main(args: Array[String]): Unit = {
for(i <- 1 to 10 ){
println(i)
}
}
}
(六)如何输出1 ~ 100 之间的奇数?
object Base27 {
def main(args: Array[String]): Unit = {
// by:步长
var sum = 0
for(i <- 1 to 100 by 2 ){
println(i)
sum += i
}
println(sum)
}
}
问题 1:求 s=1−21+31−41+51⋯+191 的值
object Base28 {
def main(args: Array[String]): Unit = {
var sum = 0.0
for (i <- 1 to 19) {
if (i % 2 == 1) {
sum += 1.0 / i
} else {
sum -= 1.0 / i
}
}
println(s"1 - 1/2 + 1/3 - 1/4 + ... + 1/19 的值为:$sum")
}
}
问题 2:从键盘输入一个数,判断它是不是素数
import scala.io.StdIn
object Base29 {
def main(args: Array[String]): Unit = {
print("请输入一个数:")
val num = StdIn.readInt()
var isPrime = true
if (num <= 1) {
isPrime = false
} else {
for (i <- 2 to Math.sqrt(num).toInt) {
if (num % i == 0) {
isPrime = false
// 只要能被一个数整除,就不是素数,提前退出循环
return
}
}
}
if (isPrime) {
println(s"$num 是素数")
} else {
println(s"$num 不是素数")
}
}
}
计算投资金额
object Base30 {
def main(args: Array[String]): Unit = {
object Investment {
def main(args: Array[String]): Unit = {
val rate = 0.1
var money = 1.0
// 1. 求第10年结束时的金额
for (_ <- 1 to 10) {
money = money * (1 + rate)
}
println(s"第10年结束时有 $money 元")
// 2. 计算多少年之后能超过1000元
money = 1.0
var year = 0
while (money <= 1000) {
money = money * (1 + rate)
year += 1
}
println(s"$year 年之后能超过1000元")
}
}
}
}