我的程序不想运行。我不知道问题出在哪里。
我的任务如下:
编写一个程序,要求用户通过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)));
}
我是非常初学者。你能解释一下我的错误吗?
答案 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 。