首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java嵌套ifs

Java嵌套ifs
EN

Stack Overflow用户
提问于 2015-03-03 21:04:26
回答 3查看 79关注 0票数 0

下面是一个小函数,当给定两个数字(a, b)时,如果其中一个数字是青少年数,则返回true。如果两者都是青少年,则返回false。如果两者都不是青少年,则返回false。我没有通过这些测试用例,但我不知道原因。帮助?(13, 99)(14, 20)(16, 9)

代码语言:javascript
复制
public boolean loneTeen(int a, int b) 
{
    if(a<=19 && a>=13) 
    {
        if(b<=19 && b>=13)
        {
            return false;
        } 
    }
    else if(a<=19 && a>=13)
    {
        return true;
    }
    else if(b<=19 && b>=13)
    {
        return true;
    }
    return false;
}
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-03-03 21:09:21

所有三个测试用例都将进入第一个if分支,它们将不匹配内部条件,并且,由于它们已经匹配了第一个分支,所以它们都将不匹配任何其他的,因此,它们都将返回错误的false。

票数 1
EN

Stack Overflow用户

发布于 2015-03-03 21:07:51

使用一个小的辅助方法可以使您的生活变得更容易(并且代码更易读!):

代码语言:javascript
复制
private boolean isTeen(int a) {
    return a > 12 && a < 20;
}

public boolean loneTeen(int a, int b) {
    if(isTeen(a) && isTeen(b) ||
            !isTeen(a) && !isTeen(b)) {
        return false;        
    }        
    return true;
}
票数 1
EN

Stack Overflow用户

发布于 2015-03-03 21:13:02

首先,当您对if和else.try放置相同的条件时,不会执行其他操作

代码语言:javascript
复制
if( a>=13 && a<=19 && b>=13 && b<=19){return false;}
else if(a>=13 && a<= 19){return true;}
else if(b<=19 && b>=13){return true;}
else return false;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28841855

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档