很抱歉打扰你们,我是编程新手,并且遇到过这个程序的问题。
import javax.swing.*;
import java.text.*;
import java.util.*;
public class Project13{
public static void main(String [] args){
String heightStr;
String weightStr;
int height;
int weight;
int bmi;
DecimalFormat df = new DecimalFormat("0");
heightStr = JOptionPane.showInputDialog(null,"Enter height in centimetres:");
height = Integer.parseInt(heightStr);
weightStr = JOptionPane.showInputDialog(null,"Enter weight in kilograms:");
weight = Integer.parseInt(weightStr);
int bmi = weight/ ((height/ 100.0)* (height/ 100.0));
JOptionPane.showMessageDialog(null,"The BMI is "+ bmi +" .");
}
}
当我尝试编译时,收到以下错误消息:
Project3_3.java:24:错误:变量bmi已在方法main(String [])中定义 int bmi = weight /((height / 100.0)*(height / 100.0));
Project3_3.java:24:错误:不兼容的类型:从double到int的可能有损转换 int bmi = weight /((height / 100.0)*(height / 100.0));
有人能发现问题吗?
此外,编写Java的最佳程序是什么?我目前使用Crimson Editor,但是每次使用它都需要很多设置。
谢谢!
******* EDIT *************** 我从BMI中删除了int,并且有损转换错误仍然存在。有想法该怎么解决这个吗?
答案 0 :(得分:2)
问题在于:
int bmi = weight/ ((height/ 100.0)* (height/ 100.0));
您已经将bmi与其他变量一起声明了。你应该设置bmi。
bmi = weight/ ((height/ 100.0)* (height/ 100.0)); //take out the "int"
答案 1 :(得分:1)
第一个错误是由此行引起的:
int bmi = weight/ ((height/ 100.0)* (height/ 100.0));
将其替换为:
bmi = weight/ ((height/ 100.0)* (height/ 100.0));
第二个实际上是一个警告:weight/ ((height/ 100.0)* (height/ 100.0));
创建的值属于double
类型,并被分配给int
类型的变量。只需将一个强制转换添加到int以防止出现此警告。
对于问题的第二部分:这取决于你想要什么。 IDE或编辑器等。我个人使用IntelliJ(相当强大的自动完成),另一个流行的IDE是eclipse,这真的取决于你想要的东西。