Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 测试检查三角形属性的布尔方法_Java_If Statement - Fatal编程技术网

Java 测试检查三角形属性的布尔方法

Java 测试检查三角形属性的布尔方法,java,if-statement,Java,If Statement,我已经找了一个多小时的东西,本来应该是一个简单的任务。 请帮助我,我会给你我所有的代码,但问题是在底部的一部分。该部分介绍了该方法 这是一个编辑。我已经改变了我的计算方法(我用^代替了(a*a),但它并没有解决所有问题) 我的代码: package domein; public class Driehoek { //attributen private int a; private int b; private int c; //constructo

我已经找了一个多小时的东西,本来应该是一个简单的任务。 请帮助我,我会给你我所有的代码,但问题是在底部的一部分。该部分介绍了该方法

这是一个编辑。我已经改变了我的计算方法(我用^代替了(a*a),但它并没有解决所有问题)

我的代码:

package domein;

public class Driehoek
{
    //attributen
    private int a;
    private int b;
    private int c;


    //constructors

    public Driehoek(int a , int b , int c)
    {
        this.setA(a);
        this.setB(b);
        this.setC(c);

    }

    //setters
    public void setA (int a)
    {
        if (a > 0)
            this.a = a;
        else
            this.a = 1;

    }

    public void setB (int b)
    {
        this.b = (b > 0 ? b : 1);
    }

    public void setC (int c)
    {
        this.c = (b > 0 ? b : 1);
    }  

    //getters
    public int getA()
    {
        return a;
    }

    public int getB()
    {
        return b;
    }

    public int getC()
    {
        return c;
    }

    //methode
    public boolean isRechthoekigeDriehoek(int a, int b, int c);

        if((a * a) + (b * b) == (c * c)) {

                 return true;
        }
        else 
        {
                 return false;
        } 

}
package domein;

import junit.framework.Assert;

import org.junit.Before;
import org.junit.Test;

public class DriehoekTest
{
private Driehoek driehoek1,driehoek2,driehoek3,driehoek4;

@Before
public void before()
{
    driehoek1 = new Driehoek(0,2,3);
    driehoek2 = new Driehoek(2,0,3);
    driehoek3= new Driehoek(2,3,0);
    driehoek4= new Driehoek(3,4,5);
}

@Test
public void controleerDriehoekZijdeAWordt1BijCreatie()
{
    Assert.assertEquals(1, driehoek1.getA());
}

@Test
public void controleerDriehoekZijdeBWordt1BijCreatie()
{
    Assert.assertEquals(1, driehoek2.getB());
}

@Test
public void controleerDriehoekZijdeCWordt1BijCreatie()
{
    Assert.assertEquals(1, driehoek3.getC());
}

@Test
public void controleerRechthoekigeDriehoek()
{
    Assert.assertEquals(true, driehoek4.isRechthoekigeDriehoek());
}

@Test
public void controleerGeenRechthoekigeDriehoek()
{
    Assert.assertEquals(false, driehoek2.isRechthoekigeDriehoek());
}

}
测试包:

package domein;

public class Driehoek
{
    //attributen
    private int a;
    private int b;
    private int c;


    //constructors

    public Driehoek(int a , int b , int c)
    {
        this.setA(a);
        this.setB(b);
        this.setC(c);

    }

    //setters
    public void setA (int a)
    {
        if (a > 0)
            this.a = a;
        else
            this.a = 1;

    }

    public void setB (int b)
    {
        this.b = (b > 0 ? b : 1);
    }

    public void setC (int c)
    {
        this.c = (b > 0 ? b : 1);
    }  

    //getters
    public int getA()
    {
        return a;
    }

    public int getB()
    {
        return b;
    }

    public int getC()
    {
        return c;
    }

    //methode
    public boolean isRechthoekigeDriehoek(int a, int b, int c);

        if((a * a) + (b * b) == (c * c)) {

                 return true;
        }
        else 
        {
                 return false;
        } 

}
package domein;

import junit.framework.Assert;

import org.junit.Before;
import org.junit.Test;

public class DriehoekTest
{
private Driehoek driehoek1,driehoek2,driehoek3,driehoek4;

@Before
public void before()
{
    driehoek1 = new Driehoek(0,2,3);
    driehoek2 = new Driehoek(2,0,3);
    driehoek3= new Driehoek(2,3,0);
    driehoek4= new Driehoek(3,4,5);
}

@Test
public void controleerDriehoekZijdeAWordt1BijCreatie()
{
    Assert.assertEquals(1, driehoek1.getA());
}

@Test
public void controleerDriehoekZijdeBWordt1BijCreatie()
{
    Assert.assertEquals(1, driehoek2.getB());
}

@Test
public void controleerDriehoekZijdeCWordt1BijCreatie()
{
    Assert.assertEquals(1, driehoek3.getC());
}

@Test
public void controleerRechthoekigeDriehoek()
{
    Assert.assertEquals(true, driehoek4.isRechthoekigeDriehoek());
}

@Test
public void controleerGeenRechthoekigeDriehoek()
{
    Assert.assertEquals(false, driehoek2.isRechthoekigeDriehoek());
}

}
这个,

使用的是按位异或,而不是指数运算(Java没有指数运算)。另外,
=
是赋值(不是相等性测试)。最简单的修复方法可能是

if ((a*a) + (b*b) == (c*c)) {

您误解了
^
运算符:它在Java中是位异或,而不是幂运算符

要获取确定您是否正在查看直角三角形的代码,请使用
a*a
Math.pow(a,2)

请注意,您的算法将无法找到正确答案

  • 当某些长度为负数时-将负数平方产生正结果,因此
    (-3,4,5)
    将产生
  • 当最长的边不是列表上的最后一条边时-一个
    (5,4,3)
    的组合定义了一个直角三角形,但是您的
    isRechthoekigeDriehoek
    方法将返回
    false

那么你想让我们为你做这件事?因为我们有经验而你没有?你认为我们是如何获得经验的?你的
setC
方法中是否有输入错误?J.P.是对的!我的setC方法中有一个类型。谢谢小加法:你可以做:返回(a*a)+(b*b)=(c*c);这节省了一些空间,并且做了同样的事情:)是的,我必须添加空格,因为注释系统似乎会将没有空格的“a*a”转换为:(a*a)+(b*b)==(c*c)…编辑:好了,现在它做得正确了。。我不知道发生了什么事:P@dasblinkenlight非常感谢。