执行SimpleIsland类中的以下myProgram()方法时打印的内容是什么?

时间:2015-12-14 02:52:07

标签: java if-statement operators

虽然我知道if / else语句和运算符是如何工作的(有很多关于它的帖子),但我似乎特别迷失在这段代码中。我得到了最后的输出(如果是的话),但是我无法通过简单地查看它并在纸上完成它来得出这个结论。我真的很感谢用简单的语言解释代码中发生了什么。

public class SimpleIsland
{
    public boolean getTrue()
    {
        return true;
    }
    public boolean getFalse()
    {
        return false;
    }
    public static void myProgram()
    {
        if ( getFalse() || getTrue() )
        {
            if ( !getTrue() )
            {
                if ( !getFalse() )
                {
                    System.out.println( "if if if" );
                }
                else 
                {
                    System.out.println( "if if else" );
                }
            }
            else 
            {
                if ( !getFalse() )
                {
                    System.out.println( "if else if" );
                }
                else 
                {
                    System.out.println( "if else else" );
                }
            }
        else
        {
            System.out.println( "else" );
        }
    }
}

2 个答案:

答案 0 :(得分:0)

如果'它将打印“if else”。第一个if(getFalse()|| getTrue())将返回true,因为我们正在检查OR条件。因此,在输入第一个if之后,下一个嵌套if(!getTrue())将返回false,因此控件将移动到else条件。接下来嵌套在if中的if(!getFalse())将评估为true,从而打印如果'

答案 1 :(得分:0)

用值true和false替换那些函数和nots,事情会变得更清晰。请不要写那样的代码。它会驱使你和任何必须保持​​疯狂的人。

public class SimpleIsland
{
    public boolean getTrue()
    {
        return true;
    }
    public boolean getFalse()
    {
        return false;
    }
    public static void myProgram()
    {
        if ( false || true )
        {
            if ( false )
            {
                if ( true )
                {
                    System.out.println( "if if if" );
                }
                else 
                {
                    System.out.println( "if if else" );
                }
            }
            else 
            {
                if ( true )
                {
                    System.out.println( "if else if" );
                }
                else 
                {
                    System.out.println( "if else else" );
                }
            }
        else
        {
            System.out.println( "else" );
        }
    }
}