while格式
while流程
练习
如何把”i miss you ”重复输出3000次?
object base12 {
def main(args: Array[String]): Unit = {
// 把 i miss you重复输出3000次
//while 循环的格式
/*
var i =0 // 循环变量,控制重复次数
while(条件){
循环体
i+=1
}
*/
var i = 1
while (i<=3000){
println(s"${i}.I miss you")
i += 1
}
}
}
输出1到100间的奇数(俩种方法)
object base13 {
def main(args: Array[String]): Unit = {
// 输出1到100的奇数
/* 第一种
var i=1
while (i<=100){
println(i) // println重复了100次
i +=2
}
*/
//第二种
var i=1
while (i<=100){
if (i % 2 == 1 ){
println(i)
}
i +=1
}
}
}
输出1到100的和
object base14 {
def main(args: Array[String]): Unit = {
// 求1到100的和
// 等差数列:(100+1)*100/2=5050(首项+末项)*项数/2
var sum =0
var i=1
while (i<=100){
sum=sum+i
i+=1
}
println(sum)
}
}
输出1到100的奇数和
object base15 {
def main(args: Array[String]): Unit = {
// 求1到100的奇数和
/*
第一种
var sum =0
var i=1
while (i<=100){
sum=sum+i
i+=2
}
*/
//第二种
var sum=0
var i=1
while (i<=100){
if (i%2==1){
sum=sum+i
}
i+=1
}
println(s"sum=${sum}")
}
}
输出1+1/2+...+1/100的和
object base16 {
def main(args: Array[String]): Unit = {
// 求1+1/2+....+1/100和
var sum:Double =0
var i=1
while (i<=100){
sum = sum+1.0 / i
i+=1
}
println(s"sum=${sum}")
}
}
while 死循环
让代码一直运行
退出死循环(breakable)
用法
breakable {
while (true) {
// 你的代码
break
}
}
练习
用while死循环判断年份是否是闰年,输入0退出死循环
import scala.util.control.Breaks.{break, breakable}
object base17 {
def main(args: Array[String]): Unit = {
// while 死循环
// 判断是否是闰年
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 的区别!
do while :无论条件是否成立,都会执行一次!
while:如果条件不成立,不会执行!
object base18 {
def main(args: Array[String]): Unit = {
//do while :无论条件是否成立,都会执行一次!
//while:如果条件不成立,不会执行!
/*
var i =100
do {
println(i)
i +=1
}while(i<=10)
*/
var i =100
while (i<=10){
println(i)
i +=1
}
}
}
练习
求数列的和
s=1 - 1/2 + 1/3 - 1/4 + 1/5....+ 1/19的和
object base19 {
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<=100) {
if (i % 2 == 1) {
sum = sum + 1.0 / i // 1/3(奇数)
} else {
sum = sum - 1.0 / i // 1/2(偶数)
}
i += 1
}
println(s"sum=${sum}")
}
}
题目描述:假设某人的年化投资回报率是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}元")
}
}