第1关:学习-Java循环do…while之前n个自然数平均值
任务描述
本关任务:给定一个大于 1 的正整数 n,求所有小于 n 的自然数的平均值(保留两位小数)。 自然数的定义:大于等于 0 的整数。
相关知识
当我们想要对同样的操作执行多次,就需要使用到循环结构,在 Java 中循环结构主要分为三种:
- while 循环;
- do...while 循环;
- for 循环。
之前我们已经学习了 while 循环,今天我们来学习跟 while 循环相似的另一种循环结构 —— do...while 循环。
do...while 循环
首先我们来了解一下 do...while 循环的逻辑:
图1
如上图1所示,do...while 循环首先会执行一遍循环体语句,然后再判断 while 后面的条件是否成立,成立的话继续执行循环体语句,不成立的话退出循环,它的语法格式如下所示:
do {
循环体语句序列;
} while(循环条件表达式);
do...while 循环与 while 循环的区别就在于 do...while 循环是先执行循环语句,后判断,而 while 循环是先判断,后执行循环语句,也就是说 do...while 循环会保证循环体语句最少被执行一遍。
do...while 循环使用案例:循环打印”好好学习,天天向上“ n 次。
public class DWhileTest {
public static void main(String[] args) {
// 定义整数变量i,并赋初值0
int i=0;
// 创建Scanner对象
Scanner input = new Scanner(System.in);
// 获取输入的整数值
int n = input.nextInt();
// 在do后的花括号中编写循环语句
do{
System.out.print("好好学习,天天向上");
i++;
}
// 在while后判断条件
while(i<n);
}
}
当 n=5 时,控制台输出结果:
好好学习,天天向上
好好学习,天天向上
好好学习,天天向上
好好学习,天天向上
好好学习,天天向上
编程要求
仔细阅读右侧编辑区内给出的代码框架及注释,按照提示编写程序代码。
测试说明
平台将使用测试集运行你编写的程序代码,若全部的运行结果正确,则通关。
可在右侧 “测试结果”区查看具体的测试集详情。
开始你的任务吧,祝你成功!
源代码:
/*
任务:通过Scanner对象获取输入值n,求所有小于n的自然数的平均值。
输出的平均值请转化为double类型。
*/
import java.util.Scanner;
public class DWhileTest {
public static void main(String[] args) {
// 定义变量n,接收输入值
int n;
// 定义求和变量sum,并赋初值0
int sum=0;
// 定义变量i,并赋初值0
int i=0;
//创建Scanner对象
Scanner input = new Scanner(System.in);
// 请在Begin-End间编写代码
/********** Begin **********/
int j=i;
n=input.nextInt();
// 获取输入值n
do{
sum+=i;
i++;
j++;
}
// 在while后判断条件,当i不小于n时退出循环
while(i<n-1);
double ever =(double)sum/(j-1);
// 输出平均值,保留两位小数
System.out.print(String.format("%.2f",ever));
/********** End **********/
}
}