为了账号安全,请及时绑定邮箱和手机立即绑定

如何重新创建下表?

如何重新创建下表?

白猪掌柜的 2021-11-11 18:15:36
大家好,我正在尝试为作业重新创建上面的表格,但由于有关 && 函数的错误而卡住了。请注意,我们不允许使用数组,并且仅限于“switch”和“If”这是我到目前为止所得到的:if ((BEAK_MM == 1) && (CLAW_MM == 0) && (COLOR = "Grey")) {   System.out.println ("The type of bird is A.");}else if ((BEAK_MM == 2) && (CLAW_MM == 1) && (COLOR = "Grey"))    System.out.println ("The type of bird is A.");}else if ((BEAK_MM == 3) && (CLAW_MM == 2) && (COLOR = "Grey"))    System.out.println ("The type of bird is A.");}else if ((BEAK_MM == 4) && (CLAW_MM == 3) && (COLOR = "Grey"))    System.out.println ("The type of bird is A.");}else if ((BEAK_MM <= 4.5) && (CLAW_MM == 4) && (COLOR = "Grey"))    System.out.println ("The type of bird is A.");}
查看完整描述

1 回答

?
慕的地10843

TA贡献1785条经验 获得超8个赞

假设BEAKandCLAW是整数并且COLOR是 a String,那么表格可以更像:


// must be grey

if ("Grey".equals(COLOR)) {

  if ((BEAK_MM == 1 && CLAW_MM == 0)

      || (BEAK_MM == 2 && CLAW_MM == 1)

      || (BEAK_MM == 3 && CLAW_MM AW == 2)

      || (BEAK_MM == 4 && CLAW_MM == 3)

      || ( (BEAK_MM == 4 || BEAK_MM == 5) && CLAW_MM == 4))) {

     System.out.println("The bird is the word");

  }

}

这里的逻辑是,根据表格,鸟A型一定是灰色的。然后有一些关于喙和爪类型的特定检查,但如果它不是灰色,则它不是 A 型鸟。也不需要所有 OP 堆叠的“else if”语句。


有许多其他方法可以解决问题空间,但我没有数组的限制,因此大概没有其他有用的数据结构,例如Listor Set。


正如@Nicholas K 所指出的,String对象必须与.equals().


我也会把这些东西移到一个方法上 isBirdTypeA(int beak, int claw, String color) { ... }


@Test

public void testBirds()

{

    final String G = "Grey";

    final String P = "Pink";


    assertTrue(isBirdTypeA(1, 0, G));

    assertFalse(isBirdTypeA(1, 0, P));

    assertTrue(isBirdTypeA(2, 1, G));

    assertTrue(isBirdTypeA(3, 2, G));

    assertTrue(isBirdTypeA(4, 3, G));

    assertTrue(isBirdTypeA(4, 4, G));

    assertTrue(isBirdTypeA(5, 4, G));

    assertFalse(isBirdTypeA(4, 5, G));

    assertFalse(isBirdTypeA(4, 0, G));

    assertFalse(isBirdTypeA(1, 1, G));


}



private static boolean isBirdTypeA(int beak, int claw, String color)

{

    if ("Grey".equals(color)) {

        if ((beak == 1 && claw == 0)

            || (beak == 2 && claw == 1)

            || (beak == 3 && claw == 2)

            || (beak == 4 && claw == 3)

            || ( (beak == 4 || beak == 5) && claw == 4)) {

                return true;

            }

    }

    return false; 

}



public static void main(String[] args) {

  int BEAK_MM = Integer.parseInt(args[0]);

  int CLAW_MM = Integer.parseInt(args[1]);

  String COLOR = args[2];


  if (isBirdTypeA(BEAK_MM, CLAW_MM, COLOR)) {

    System.out.println("The type of bird is A");

  }

}

$ java BirdBeak 1 0 Gray

鸟的类型是 A


查看完整回答
反对 回复 2021-11-11
  • 1 回答
  • 0 关注
  • 126 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信