java如何在结果中没有ifcondition的情况下中断循环
import java.util.Scanner;
public class Tykinkuula {
public static void main(String[] args) {
Scanner lukija = new Scanner(System.in);
double highest = 0;
int seconds = 0;
double height = 0;
System.out.println("Syötä tykinkuulan lähtönopeus: ");
double startspeed = Double.parseDouble(lukija.nextLine());
System.out.println("Syötä painovoima: ");
double gravity = Double.parseDouble(lukija.nextLine());
System.out.println(seconds + "\t" + height + "\t" + startspeed);
while (true) {
if (height < 0.0) {
break;
}
height = height + startspeed;
seconds = seconds + 1;
startspeed = startspeed - gravity;
if (height > highest) {
highest = height;
}
System.out.println(seconds + "\t" + height + "\t" + startspeed);
}
System.out.println("");
System.out.println("Tykinkuulan suurin korkeus oli " + highest);
}
这是一个计算器的代码,它每秒给我一个佳能球的速度和高度。输入所需的起动速度和重力,然后运行代码
当我运行这段代码时,它给我3列,秒,高度和速度
循环应该在佳能球落地之前结束,因此基本上在高度=0之前结束。但是当我运行代码时,它会给我一个负高度,但是我需要程序只显示球在空中时的结果
那么,如何消除负面结果呢
# 1 楼答案
简单移动
经过计算。由于只有在低于0时才进行检查,因此需要在计算下一步后进行检查。当前,您在循环开始时进行检查,其中
height
仍然具有来自上一次迭代的值(0),而下一次计算输出负数