Java未提供表达式的预期结果

Java未提供表达式的预期结果,java,operator-precedence,Java,Operator Precedence,我试图实现以下表达式s=ut+½at²,但它没有给出u=2、a=2、t=1=>s=3.00m的预期结果 我尝试过在括号/括号中移动,但它无法解决问题 导入java.util.Scanner; 公开课练习4{ 公共静态字符串参数[]{ 浮动速度、时间、加速度、距离; 扫描仪输入=新的ScannerSystem.in; System.out.Print请输入初始速度:; 速度=input.nextFloat; System.out.Print请输入加速度:; 时间=input.nextFloat;

我试图实现以下表达式s=ut+½at²,但它没有给出u=2、a=2、t=1=>s=3.00m的预期结果

我尝试过在括号/括号中移动,但它无法解决问题

导入java.util.Scanner; 公开课练习4{ 公共静态字符串参数[]{ 浮动速度、时间、加速度、距离; 扫描仪输入=新的ScannerSystem.in; System.out.Print请输入初始速度:; 速度=input.nextFloat; System.out.Print请输入加速度:; 时间=input.nextFloat; System.out.Print请输入旅行时间:; 加速度=input.nextFloat; 距离=速度*时间+0.5 f*加速度*时间*时间; System.out.PrintLn对象移动的距离为+字符串.format%.2f,距离+米; } } 其他可行的预期结果包括:

u = 0, a = 0, t = 0 => s0 .00 m
u = 0, a = 1, t = 1 => s0 .50 m
u = 1, a = 1, t = 1 => s1 .50 m

你把输入的顺序弄乱了。 您要求的是加速度值,但将该输入指定给时间变量

System.out.print("Please enter the acceleration: ");
        time = input.nextFloat();
只要改变一下顺序就行了

import java.util.Scanner;

public class Exercise4 {
    public static void main(String args[]) {
        float speed, time, acceleration, distance;
        Scanner input = new Scanner(System.in);
        System.out.print("Please enter the initial speed: ");
        speed = input.nextFloat();
        System.out.print("Please enter the acceleration: ");
        acceleration = input.nextFloat();
        System.out.print("Please enter the time spent traveling: ");
        time = input.nextFloat();
        distance = (speed * time) + (((0.5f * acceleration) * time) * time);
        System.out.println("The object traveled a distance of " + String.format("%.2f", distance) + " metres"); 
    }
}

它没有给出预期的结果,因此,您的代码可能是错误的。你提供的输入是什么,你期望的输出是什么,你得到了什么?你调试过你的代码吗?旁白:不要用浮点数进行计算。使用double。@AndyTurner为什么将加速度保存在时间变量中,而将时间保存在加速度变量中。@AndyTurner您是谁,可以说出所需的精度?浮点数据类型的存在是有原因的。