1、实验要求
本实验要求:模拟物体从10000米高空掉落后的反弹行为。
1-1. 创建工程并配置环境:
1-1.1. 限制1. 工程取名:SE_JAVA_EXP_E009。
1-1.2. 限制2. 创建包,取名:cn.campsg.java.experiment。
1-1.3. 限制3. 创建类,类名:FreeFall。
1-2. 接收用户输入的弹跳次数:
1-2.1. 要求用户输入球体反弹次数,提示语句:”请输入弹跳次数:”
1-3. 落体计算规则:
1-3.1. 当前实验设置球体的初始高度为:10000。
1-3.2. 球体每落地一次,就会反弹至原高度的一半。
1-4. 计算落体高度:
1-4.1. 要求:按用户输入的弹跳次数,计算球体每次弹跳的高度。
1-4.2. 如果球体在第N次弹跳后,已经落地(高度=0),则退出计算。
1-4.3. 限制1. 使用for循环计算落体高度。
1-5. 输出结果:
1-5.1. 如第N次弹跳后球体已落地,则在控制台输出:"第" + N + "次反弹后,球体落地"(N为已经历的弹跳次数)。
1-5.2. 如第N次弹跳后球体未落地,则在控制台输出:弹跳次数 + "次反弹后,当前球体的高度是:" + 计算所得的球体高度。
2、实现思路
2-1. 按实验要求创建工程并配置环境。
2-2. 接收用户输入的弹跳次数:
2-2.1. 创建Scanner对象,设置参数:System.in:
|
2-2.2. 调用Scanner的nextInt方法获取用户输入的球体弹跳次数。
2-2.3. 调用close方法关闭Scanner。
2-3. 根据落体计算规则,计算落体高度:
2-3.1. 创建球体高度整型变量,默认值:10000。
2-3.2. 创建for循环模拟反弹,循环边界为:用户输入的弹跳次数。
2-3.3. 每次循环,球体高度 = 球体高度 / 2。
2-3.4. 每次循环,判断球体的高度是否等于0(球体落地):
1)如果已经落地,那么在控制台输出:"第" + N + "次反弹后,球体落地"(N为循环变量)。
2)如果未落地,那么继续计算高度。
2-4. 输出结果:
2-4.1. 循环结束后,球体仍然未落地,则在控制台打印:用户输入的弹跳次数 + "次反弹后,当前球体的高度是:" + 球体高度变量。
package cn.campsg.java.experiment;
import java.util.Scanner;
public class FreeFall {
public static void main(String[] args) {
System.out.println("请输入弹跳次数:");//调用Sanncer,输入球体要弹跳的次数int N.
Scanner in = new Scanner(System.in);
int N = in.nextInt();
in.close();
int high=10000;//定义球体默认高度为10000.
for(int i=1;i<=N;i++){
high=high/2;//球体每次的反弹高度为上一次高度的一半
if(high==0){//
System.out.println("第"+i+"次反弹后,球体落地");//球体高度为0,此时i为球体的弹跳的最大次数
}
}
System.out.println(N+"次反弹后,当前球体的高度是:"+high);//输出在N次之后,球体的反弹高度
}
}