【问题标题】:Need assistance with basic Java program在基本 Java 程序方面需要帮助
【发布时间】:2015-05-21 20:32:37
【问题描述】:

很抱歉打扰你们,我是编程新手,在使用这个程序时遇到了问题。

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 = 体重/ ((身高/ 100.0)* (身高/ 100.0));

Project3_3.java:24:错误:不兼容的类型:从 double 到 int 的可能有损转换 int bmi = 体重/ ((身高/ 100.0)* (身高/ 100.0));

谁能发现问题?

另外,什么程序最适合编写 Java?我目前使用 Crimson Editor,但是每次使用时都需要进行大量设置。

谢谢!

*********编辑*************** 我从 BMI 中删除了 int,但有损转换错误仍然存​​在。有想法该怎么解决这个吗?

【问题讨论】:

  • 首先,您不能在同一范围内多次声明标识符。第二次你将一个双精度值放入一个 int 变量中,有许多双精度值不能原封不动地转换为 int,编译器会警告你。
  • 后期编辑:将 bmi 声明为“double”而不是“int”。
  • 感谢所有帮助!固定。

标签: java compiler-errors


【解决方案1】:

问题来了:

int bmi = weight/ ((height/ 100.0)* (height/ 100.0));

您已经与其他变量一起声明了 bmi。您应该改为设置 bmi。

bmi = weight/ ((height/ 100.0)* (height/ 100.0)); //take out the "int"

【讨论】:

  • 另外,正如 BevynQ 所提到的,你试图传递给 bmi 的值是一个双精度值,因为有一个小数,所以你应该将 bmi 声明为双精度类型而不是 int。
【解决方案2】:

第一个错误是由这一行引起的: 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,这真的取决于你想要什么。

【讨论】:

  • 是的,这就是您将值转换为 inttype 的方式
猜你喜欢
  • 2011-10-04
  • 2011-05-09
  • 2011-08-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多