Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如果结果中没有if条件,如何中断循环_Java_While Loop - Fatal编程技术网

Java 如果结果中没有if条件,如何中断循环

Java 如果结果中没有if条件,如何中断循环,java,while-loop,Java,While Loop,这是一个计算器的代码,它每秒给我一个佳能球的速度和高度。输入所需的起动速度和重力,然后运行代码 当我运行这段代码时,它给我3列,秒,高度和速度 循环应该在佳能球落地之前结束,因此基本上在高度=0之前结束。但是当我运行代码时,它会给我一个负高度,但是我需要程序只显示球在空中时的结果 那么,如何消除负面结果呢?只需移动即可 import java.util.Scanner; public class Tykinkuula { public static void main(String[] ar

这是一个计算器的代码,它每秒给我一个佳能球的速度和高度。输入所需的起动速度和重力,然后运行代码

当我运行这段代码时,它给我3列,秒,高度和速度

循环应该在佳能球落地之前结束,因此基本上在高度=0之前结束。但是当我运行代码时,它会给我一个负高度,但是我需要程序只显示球在空中时的结果

那么,如何消除负面结果呢?

只需移动即可

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);

}

经过计算。由于只有在低于0时才进行检查,因此需要在计算下一步后进行检查。当前,您在循环开始时进行检查,其中height仍然具有上一次迭代的值0,而下一次计算输出负数

看起来您需要学习使用调试器。请随便吃点。如果之后仍然存在问题,请随时回答更具体的问题。当高度>=0.0时,变量的增量在哪里,最高?在您的情况下,它将始终为0。@akshayapandey一点帮助都没有。高度变为负值的计算在循环过程中进行是..当高度变为-ve时,条件确保循环终止…如果块终止,这将确保相同的行为
if (height < 0.0) {
    break;
}