简单的方法查询

时间:2011-10-27 00:41:51

标签: java methods if-statement invoke

我有以下代码返回错误。

该行:

return first;

表示:

  

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

看起来很简单,但我无法弄清楚。我试图显示调用methodB的值。

另外,您会注意到我已将if语句评为#4。有人可以进一步了解我的意见。

如果if中当前元素中保存的值高于当前值first,此alphas语句是否更新变量first所持有的值?< / p>

希望这是有道理的,有人可以提供帮助。迟到了,我的大脑不再工作了。 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;
    }
}

2 个答案:

答案 0 :(得分:0)

您的功能签名表示您正在返回char[]

public static char[] methodB()

但实际上你返回char

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

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

public static char methodB()

并改变它的使用位置:

char alp = m.methodB();

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

答案 1 :(得分:0)

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;
    }
}