1.while循环的格式
2.break的作用
3.do while 循环的格式
4.while与do while的区别
while循环的格式
while(condition) {// 满足条件就执行,如果条件一直满足,就一直执行。
statement(s)
}
while循环
循环就是重复执行多次
如何把”i miss you ”重复输出3000次?
object base19 {
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 demo03 {
def main(args: Array[String]): Unit = {
// 把 1,2,3,4,5,...100 中的奇数输出
var i = 1
// while(i<=100){
// println(i) // println重复了100次
// i += 2
// }
while(i <= 100){
if(i % 2 == 1){ // 奇数
println(i)
}
i += 1
}
}
}
求1-100的和
object demo04 {
def main(args: Array[String]): Unit = {
// 1 + 2 + 3 + 4 + 5 + ..... + 100 的结果
// 等差数列: (100+1) * 100 / 2 = 5050
var sum = 0
var i = 1
while(i<=100){
sum = sum + i
i += 1
}
println(s"sum=${sum}")
}
}
求 1 - 100 的奇数和
object demo04 {
def main(args: Array[String]): Unit = {
// 求 1 - 100 的奇数和
while (i <= 100) {
if (i % 2 != 0) { // 判断是否为奇数
sum += i
}
i += 1
}
println(s"1到100的奇数和为: $sum")
}
}
while死循环
在需要一直执行的时候,就可以使用死循环。
例如,不停地判断用户的输入的内容是否是闰年
import scala.util.control.Breaks.{break, breakable}
object demo06 {
def main(args: Array[String]): Unit = {
// 从循环中跳出来?
// 输入0 就结束判断
breakable{
while(true) {
print("请输入要判断的年份(输入 0 就结束判断):")
// 判断用户输入的年份,是否闰年
val year = scala.io.StdIn.readInt()
if(year == 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("死循环结束了....系统退出")
}
}
break的作用
跳出死循环
import scala.util.control.Breaks._
object Main {
def main(args: Array[String]): Unit = {
breakable {
while (true) {
// 你的代码
break
}
}
}
}
判断用户输入的年份是否是闰年,如果用户输入0,则结束判断
import scala.util.control.Breaks.{break, breakable}
object demo06 {
def main(args: Array[String]): Unit = {
// 从循环中跳出来?
// 输入0 就结束判断
breakable {
while (true) {
print("请输入要判断的年份(输入 0 就结束判断):")
// 判断用户输入的年份,是否闰年
val year = scala.io.StdIn.readInt()
if (year == 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 );
输出1 - 10
object demo07 {
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
}
}
}
while与do while的区别
do while:无论条件是否成立,都会执行一次
while: 如果条件不成立,不会执行
object demo08 {
def main(args: Array[String]): Unit = {
// 求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}")
}
}
实际解决问题:
求数列的和
object demo08 {
def main(args: Array[String]): Unit = {
// 求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}")
}
}