返回偶数的方法

时间:2017-03-05 10:58:14

标签: java if-statement for-loop int

此方法无法编译,无法理解原因。错误是:

  

无法找到符号变量i

{for}循环中定义了int i。该方法应返回int aint b之间的偶数。

代码:

public int partall(int a, int b){
    int partall;
    int største; 
    int minste;
    if(a == b){
        partall = 0;
    }else{
        if(a>b) {
        største = a;
        minste = b; 
        }else if(a<b){
            minste = a;
            største = b;

            for(int i = minste;  i<= største; i++){
                if(i % 2 == 0) {
                     partall = i;
                }
            }

        }

    }
    return i;
}

4 个答案:

答案 0 :(得分:2)

i仅在for循环范围内可见,但不在外部。执行return i;时,它超出了范围。所以你需要将声明放在for块之外。

<强>解决方案:

public int partall(int a, int b){
    int partall;
    int største; 
    int minste;
    int i = 0; 
    if(a == b){
        partall = 0;
    }else{
        if(a>b) {
            største = a;
            minste = b; 
        }else if(a<b){
            minste = a;
            største = b;

            for(i = minste;  i<= største; i++){
                if(i % 2 == 0) {
                    partall = i;
                }
            }

        }

    }
    return i;
}

答案 1 :(得分:1)

您将返回i,其范围仅在for loop之外。

从实施情况来看,我认为您可能希望返回partall而不是i

使用某些内容初始化partall,即

int partall = 0;

并在最后一行

return partall;

那应该有用

答案 2 :(得分:0)

变量ireturn语句的范围内不可见。您需要在i循环之外和for之外声明if-else,以便在return的范围内显示int i = 0;。尝试在声明其余变量的函数顶部声明int i = minste;(或甚至my-directive并删除下面的分配)。

答案 3 :(得分:0)

你应该初始化“partall”并返回该变量:

public int partall(int a, int b){
    int partall = 0;
    int største; 
    int minste;
    if(a == b){
        partall = 0;
    }else {
        if(a>b) {
        største = a;
        minste = b; 
    } else if(a<b) {
        minste = a;
        største = b;

    for(int i = minste;  i<= største; i++){
        if(i % 2 == 0) {
            partall = i;
        }
    }

   }

}
return partall;

}