(一) While的格式
[while(condition) {
// 满足条件就执行,如果条件一直满足,就一直执行。
statement(s)
}
eg1. :把I miss you 重复输出3000次
object Main{
def main(args: Array[String])={
/*
var i=0 // 循环变量 控制重复次数
while(条件){
循环体
i+=1
}
*/
var i =1
while(i<=3000){
println(s"${i}.I miss you")
i+=1
}
}
}
eg2.输出1到100中的奇数
object Test {
def main(args: Array[String]): Unit = {
// 打印1到100中奇数
var i = 1
while (i <= 100) { // 建议将i < 100改为i <= 100,逻辑更严谨
if (i % 2 == 1) {
println(i)
}
i += 1 // 添加i的递增语句
}
}
}
eg3. 计算1+2+3+4+5....+100
object base13 {
def main(args: Array[String]): Unit = {
var sum = 0
var i = 1
while (i <= 100) {
sum = sum + i // 累加操作移出if条件,单独作为语句执行
i += 1 // 循环变量自增(原代码遗漏,会导致死循环)
}
println(sum) // 打印最终总和
}
}
eg4. 计算1到100的奇数和
object base13 {
def main(args: Array[String]): Unit = {
var sum = 0
var i = 1
while (i <= 100) {
if (i % 2 == 1) {
sum = sum + i
}
i += 1
}
println(s"sum=${sum}")
}
}
eg5: 计算1/1 + 1/2 + 1/3 + …… + 1/100的和并输出结果
object base14 {
def main(args: Array[String]): Unit = {
var sum = 0.0
var i = 1
while (i <= 100) {
sum += 1.0 / i
i += 1
}
println(f"1到100的倒数和为: $sum%.5f")
}
}
(二)scala中while的死循环
在需要一直执行的时候,就可以使用死循环
eg1:判断用户输入的年份是否闰年
import scala.util.control.Breaks.{break, breakable} //不用写 会自动生成
object base13 {
def main(args: Array[String]): Unit = {
breakable {
while (true) {
print("请输入判断的年份(输入0就结束判断):")
//判断用户输入的年份是否闰年
val year = scala.io.StdIn.readInt()
if (year == 0) {
//结束循环
break
}
if (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0)) {
println(s"year 是闰年") } else { println(s"year 不是闰年")
}
}
}
println("死循环结束了....系统退出")
}
}
(三)do while循环
[do {]()
statement(s);
} while( condition );
[强调]:do ... while 和while的区别在于,一定会执行一次。
eg1:求s=1-1/2+1/3-1/4+1/5...+1/19的值
object base14 {
def main(args: Array[String]): Unit = {
//求s=1-1/2+1/3-1/4+1/5...+1/19的值
var sum:Double=0
var i =1
while(i<=20){
if(i%2==1){
sum =sum +1.0/i
}else {
sum =sum -1.0/i
}
i+=1
}
println(s"sum=${sum}")
}
}
eg2.求money
假设某人的年化投资回报率是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 base20 {
def main(args: Array[String]): Unit = {
var i = 0
var money = 1.0
while (i<10){
money = money * 1.1
i = i+1
}
println(s"第${i} 年结束时有${money}元")
}
}
二.第二问
object base20 {
def main(args: Array[String]): Unit = {
var i = 0
var money = 1.0
while (money<1000){
money = money * 1.1
i = i+1
}
println(s"第${i} 年结束时有${money}元")
}
}