【问题标题】:Simple method query简单方法查询
【发布时间】:2011-10-27 00:41:51
【问题描述】:

我有以下返回错误的代码。

行:

return first;

说:

不兼容的类型,必填:char[]

这似乎很简单,但我想不通。我正在尝试显示调用 methodB 的值。

另外,您会注意到我已将if 语句注释为#4。有人可以进一步加深我的理解。

如果alphas 中当前元素中保存的值在first 的当前值之前,此if 语句是否更新变量first 保存的值?

希望这是有道理的,有人可以提供帮助。迟到了,我的大脑不再工作了。 Java 将决定我的成败!

package openuniversity;

public class Main
{

    public static void main(String[] args)
    {
        Main m = new Main();
        char [] alp = m.methodB();

        for (char b: alp)
        {
            System.out.println(b);
        }
    }

    public static char[] methodB()
    {

        char [] alphas = {'s','a','u','s','a','g','e'};
        char first = alphas[0];
        for (int i= 1; i < alphas.length; i++) //3
        {
            if (alphas[i] < first) //4
            {
            first = alphas[i];
            }
        }
        return first;
    }
}

【问题讨论】:

  • methodB 被声明为返回 char[],但您试图返回单个 char
  • 谢谢。你能告诉我我需要改变什么吗?从我的方法头中删除 char [] 并不能解决问题:/
  • 我会认真考虑一个初学者的编程/java指南。您声明该方法以返回特定类型的事物,然后返回该类型的事物。如果您尝试返回不同类型的东西,它将无法编译。
  • 我正在英国开放大学学习一个模块,这让我陷入了困境。导师是无用的,比帮助我更让我困惑。我有一个很棒的文本,我正在处理,但我需要清理它以进行评估。他们强迫我在我能走路之前跑,结果就是这样:(
  • "我有以下代码返回错误。"不,它没有,它给出了一个编译错误。

标签: java methods if-statement invoke


【解决方案1】:
package openuniversity;

public class Main
{

    public static void main(String[] args)
    {
        Main m = new Main();
        char alp = m.methodB();

        System.out.println(alp);
    }

    public static char methodB()
    {

        char [] alphas = {'s','a','u','s','a','g','e'};
        char first = alphas[0];
        for (int i= 1; i < alphas.length; i++) //3
        {
            if (alphas[i] < first) //4
            {
            first = alphas[i];
            }
        }
        return first;
    }
}

【讨论】:

    【解决方案2】:

    你的函数签名说你正在返回一个char[]

    public static char[] methodB()
    

    但你实际上返回了一个char

    char first = alphas[0];
    // ...
    return first;
    

    您想要做什么并不完全清楚,但您需要更改签名以返回单个字符:

    public static char methodB()
    

    并更改它的使用位置:

    char alp = m.methodB();
    

    或者让methodB实际上返回一个char[]。问题是我不知道它实际上应该返回什么。我建议给这个函数起一个更好的名字。你可能想看看Lists

    【讨论】:

    • 谢谢布伦丹 - 这有助于我理解我哪里出错了。正如我上面的评论所述,我这样做是作为在线课程的一部分,这让我陷入了困境,我不知道该方法的目的是什么(没有给出解释)或它在做什么。但我得到了返回值,这部分是我想要的。非常感谢您的帮助,必须感谢!
    猜你喜欢
    • 2016-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多