需要基本Java程序的帮助

时间:2015-03-18 20:59:23

标签: java compiler-errors

很抱歉打扰你们,我是编程新手,并且遇到过这个程序的问题。

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,并且有损转换错误仍然存​​在。有想法该怎么解决这个吗?

2 个答案:

答案 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,这真的取决于你想要的东西。