如何接受一个空的整数值?

时间:2019-05-18 08:42:09

标签: java

我的程序计算圆锥体(pi * radius * slant-height)的表面积。我使用的是if-elseif梯形图,它表示如果倾斜高度保留为空并输入了垂直高度,程序将通过毕达哥拉斯定理计算倾斜高度。但是我不知道如何使程序接受空值

我尝试使用if(slant_height==null),但它表示类型不兼容,并且=="bad operator type"

{
public void CSAcone(double radius,double slant_height,double height) {
    if (slant_height == null)
    {
         slant_height=Math.sqrt((radius*radius) + (height*height));
         double CSA=(22*radius*slant_height) / 7;

         System.out.println("radius= "+radius);
         System.out .println("height= "+slant_height);
         System.out .println("Curved Suface Area= "+CSA);
    }

    if(height == null) 
    {
        double CSA=(22*radius*slant_height) / 7;

        System.out.println("radius= " + radius);
        System.out.println("height= " + slant_height);
        System.out.println("Curved Suface Area= " + CSA);
    }
}}

3 个答案:

答案 0 :(得分:1)

尝试:

 public void CSAcone(double radius, double slant_height, double height) {
    if (slant_height == 0.0f) {
        slant_height = Math.sqrt((radius * radius) + (height * height));
        double CSA = (22 * radius * slant_height) / 7;
        System.out.println("radius= " + radius);
        System.out.println("height= " + slant_height);
        System.out.println("Curved Suface Area= " + CSA);
    }
    if (height == 0.0f) {
        double CSA = (22 * radius * slant_height) / 7;
        System.out.println("radius= " + radius);
        System.out.println("height= " + slant_height);
        System.out.println("Curved Suface Area= " + CSA);
    }
}

答案 1 :(得分:0)

null可以强制转换为任何引用类型,但不能强制转换为任何原始类型,例如int或boolean。

您可以使用基本类型并发送一个特殊值以指定空白。

或者仅使用对象类型(整数,布尔值,双精度型等)并检查空值(如您所做的那样)。

public void CSAcone(Double radius,Double slant_height,Double height){
   if(radius == null){}
   if(slant_height == null){}
   if(height == null){}
   // ...
}

答案 2 :(得分:0)

将变量类型更改为原始类型(int,double)的包装器类(Integer,Double)。在Java中,基本类型不能为null。