无法从程序开始。使用Java中的扫描仪完成简单任务

时间:2018-10-21 14:15:40

标签: java java.util.scanner

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

我的任务如下: 编写一个程序,要求用户通过Scanner类型的对象输入他/她的身高(以米为单位,加倍),然后输入重量(以千克为单位,也加倍)。然后程序在消息框(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)));
}

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

3 个答案:

答案 0 :(得分:2)

您的答案似乎有两个错误。

1)您需要使用/进行划分,而不是:

2)您正在尝试将String消息广播到double

请参考以下更正的代码-

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

答案 1 :(得分:0)

我认为问题是最后一行:

  

“您的BMI是” + y:(x * x)

如果要除法,则需要使用'/'运算符。 我还认为您需要使用方括号:

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

答案 2 :(得分:0)

不能将双精度型转换为任何字符串。您的代码执行的是错误

<files xmlrpc.php>
  order allow,deny
  deny from all
</files>

请注意,以上代码已删除了 double 类型转换。而且您甚至都不需要进行两次强制转换,因为结果将始终是 double