虽然我知道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" );
}
}
}
答案 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" );
}
}
}