【问题标题】:return statements are not coming out right退货声明不正确
【发布时间】:2022-11-18 07:35:07
【问题描述】:

我需要编写一个方法来检查是否:

A = 所有数字都相等。 B = 没有数字相等。 C = 至少两个数相等。

我刚刚开始在 uni 中学习所有这些,但我似乎无法弄清楚我在这个需要返回给定条件的方法中做错了什么,例如(“A”,“B”,“C”)。

public static int checkNumbers(int x, int y, int z) 
{ 
    int A,B,C;

    A = 'A';
    B = 'B';
    C = 'C';

    if((x == y) && (y == z))
    {
        return A;
    }
    else if ((x == y) || (x == z) || (y == z))
    {
        return C;

    }
    else
    {
        return B;
    }
}

【问题讨论】:

  • 你能解释一下代码在什么情况下不起作用吗?什么是输入,什么是输出?
  • 你到底在哪里打电话给checkNumbers?什么是x,y,z

标签: java equals


【解决方案1】:

您已将 A、B 和 C 声明为整数,然后为它们分配了一个“Char”。 也许试试

public static char checkNumbers(int x, int y, int z) 
{ 
    char A,B,C;

    A = 'A';
    B = 'B';
    C = 'C';

    if((x == y) && (y == z))
    {
        return A;
    }
    else if ((x == y) || (x == z) || (y == z))
    {
        return C;

    }
    else
    {
        return B;
    }
}

或者,使用字符串

public static String checkNumbers(int x, int y, int z) 
{ 
    String A,B,C;

    A = "A";
    B = "B";
    C = "C";

    if((x == y) && (y == z))
    {
        return A;
    }
    else if ((x == y) || (x == z) || (y == z))
    {
        return C;

    }
    else
    {
        return B;
    }
}

【讨论】:

  • 您不应将 == 用于字符串。
  • 你应该使用.equals,但在这种情况下他只是比较整数(x,y,z)
【解决方案2】:

返回给定的条件,例如(“A”,“B”,“C”)

那么你应该返回String(或char),而不是int

public static String checkNumbers(int x, int y, int z) { 
    if (x == y && y == z) {
        return "A";
    } else if (x == y || x == z || y == z) {
        return "C";
    } else {
        return "B";
    }
}

public static void main(String[] args) {
   System.out.println(checkNumbers(0, 0, 0)); // A 
   System.out.println(checkNumbers(0, 0, 1)); // C
   System.out.println(checkNumbers(0, 1, 2)); // B
}

【讨论】:

    猜你喜欢
    • 2013-07-13
    • 2012-10-04
    • 2013-07-11
    • 2011-08-10
    • 1970-01-01
    • 1970-01-01
    • 2017-06-06
    • 2016-06-23
    • 2012-01-02
    相关资源
    最近更新 更多