Can';不要从程序开始。Java中带扫描器的简单任务

Can';不要从程序开始。Java中带扫描器的简单任务,java,java.util.scanner,Java,Java.util.scanner,我的程序不想运行。我不知道,问题出在哪里 我的任务如下: 编写一个程序,要求用户通过扫描器输入他/她的身高(米,双倍),然后输入体重(公斤,双倍)。然后,程序将显示在一个消息框中(JOptionPane.showMessageDialog)他/她的BMI系数(体重指数),定义为体重(千克)除以身高(米)的平方,这个数字应该接近20 public static void main(String[] args) { System.out.println("Write your height

我的程序不想运行。我不知道,问题出在哪里

我的任务如下: 编写一个程序,要求用户通过扫描器输入他/她的身高(米,双倍),然后输入体重(公斤,双倍)。然后,程序将显示在一个消息框中
(JOptionPane.showMessageDialog)
他/她的BMI系数(体重指数),定义为体重(千克)除以身高(米)的平方,这个数字应该接近20

public static void main(String[] args) {

    System.out.println("Write your height, then press ENTER");
    java.util.Scanner in = new java.util.Scanner(System.in);
    double x = in.nextDouble();

    System.out.println("Write your weight, then press ENTER");
    java.util.Scanner in2 = new java.util.Scanner(System.in);
    double y = in.nextDouble();

    JOptionPane.showMessageDialog((double)("Your BMI is"+y:(x*x)));
}

我是非常非常初学者。你能解释一下我的错误吗?

我想问题出在最后一行:

“你的体重指数是”+y:(x*x)

如果要除数,需要使用“/”运算符。 我也认为你需要括号:

JOptionPane.showMessageDialog((double)("Your BMI is"+(y/(x*x))));

你的答案似乎有两处错误

1) 您需要使用
/
进行除法,而不是

2) 您正在尝试将
字符串
消息键入到
double

请参阅下面更正的代码-

double bodyMass = y/(x*x);
JOptionPane.showMessageDialog("Your BMI is"+bodyMass);

不能对任何字符串强制转换双精度。您的代码执行的是错误

JOptionPane.showMessageDialog("Your BMI is"+y/(x*x));

请注意,上面的代码我已经删除了doublecast。您甚至不需要任何双重强制转换,因为结果总是double

我的版本是jdk 10.0.2请删除问题中的JavaScript标记。您的问题与Java有关,而不是与JavaScription有关。如果您在尝试运行此程序时提到遇到的异常,那就太好了。我应该使用什么来代替字符串?因为程序无法看到JOptionPane.showMessageDialog,或者可能是因为我使用的是Notepad++?您应该只使用字符串。但不能将字符串类型转换为双精度。我不明白你第二句话的意思。希望您对JOptionPane使用正确的导入语句。您是否仍然收到任何CompileTimeException或RuntimeException?如果是,请在问题中分享。