(JAVA)参数和返回类型错误

时间:2016-09-01 11:47:09

标签: java parameters return-type

有人能告诉我我的代码有什么问题吗?它给出了一个错误“ truefalse 无法解析为变量”问题是要求我返回值true,如果int数是偶数,则返回false,如果是奇数

public class number{
    public static void main(String[] args){

        boolean truefalse = isEven(245);
        System.out.print(truefalse);
    }
    public static boolean isEven(int number) {

        if(number%2 == 0){
            boolean truefalse = true;
        }
        else{
            boolean truefalse = false;
        }
        return truefalse;
    }
}

6 个答案:

答案 0 :(得分:2)

目前,您遇到的问题是在songAdapter.getItem(position);块中声明int actualPostion=songsList.indexOf(songAdapter.getItem(position)); ,因此truefalse语句不知道它是什么(范围问题)。以下是一些修复:

解决方案1 ​​

您可以将if-else课程简化为:

return

解决方案2

要保留布尔值,请执行此操作

isEven()

解决方案3

要保留布尔值,但最小化代码布尔逻辑,请执行以下操作:

public static boolean isEven(int number) {

    if(number%2 == 0){
        return  true;
    }
    else{
        return false;
    }
}

解决方案4

你可以简化你的功能最多就是这样:

public static boolean isEven(int number) {
    boolean truefalse;
    if(number%2 == 0){
        truefalse =  true;
    }
    else{
        truefalse = false;
    }
    return truefalse;
}

这也会有相同的结果。

答案 1 :(得分:0)

在if-else块之外声明boolean truefalse;。它在if-else块中有truefalse变量,if-else之外没有范围。所以返回的变量无法解析。

public static boolean isEven(int number) {

boolean truefalse;

    if(number%2 == 0){
        truefalse = true;
    }
    else{
        truefalse = false;
    }
    return truefalse;
}

简单isEven可以是:

public static boolean isEven(int number) {    
    return (number%2 == 0);
}

答案 2 :(得分:0)

在外面声明它if else阻止

boolean truefalse = isEven(245);
        System.out.print(truefalse);
    }
    public static boolean isEven(int number) {
     boolean truefalse =false;
        if(number%2 == 0){
            truefalse = true;
        }

        return truefalse;
    }

答案 3 :(得分:0)

用以下内容替换您的代码。

public class number{
    public static void main(String[] args){

        boolean truefalse = isEven(245);
        System.out.print(truefalse);
    }
    public static boolean isEven(int number) {
        boolean truefalse = false;
        if(number%2 == 0){
            truefalse = true;
        }

        return truefalse;
    }
}

答案 4 :(得分:0)

可能更具可读性

public static boolean isEven(int number){
  return number%2 == 0? true: false;

}

答案 5 :(得分:0)

您应该阅读java variable scope

您的isEven方法中发生的事情是您在truefalse if{} else内声明{}变量,但在外面那些括号,return是,这个变量不存在。

所以,正如许多答案所提到的,你应该在正确的范围内声明变量,例如:

 public static boolean isEven(int number) {
        boolean truefalse;
        if(number%2 == 0){
            truefalse = true;
        }
        else{
            truefalse = false;
        }
        return truefalse;
    }