本人新手,在书上看到这么一个题目:
int x=2,y=3;
if(x>2) if(y>2)
{
int z=x+y;
System.out.println("z is"+z);
}
else
System.out.println("x is"+x);
打印结果是什么都没有输出.
以上代码是等价于
int x=2,y=2;
if(x>2) {} //注意加了大括号
if(y>2)
{
int z=x+y;
System.out.println("z is"+z);
}
else
System.out.println("x is"+x);
还是等价于
int x=2,y=3;
if(x>2){ //注意加了大括号
if(y>2)
{
int z=x+y;
System.out.println("z is"+z);
}
else
System.out.println("x is"+x); }
作者: IT@民工 时间: 2014-8-19 17:21
代码有问题吧?你贴上来的对么?上个图看看
感觉可能是这个意思
class tes1
{
public static void main(String[] args)
{
int x =5;
int y =3;
if (x>2&&y>2)
{
int z = x+y;
System.out.print("z is"+z);
}
else
完整代码是
class Test
{
public static void main(String[] args)
{
int x=2,y=2;
if(x>2)
if(y>2)
{
int z= x + y;
System.out.println("z is"+z);
} else
System.out.println("x is"+x);
}
}
疑惑的是第一个if语句省略的大括号是包含了后面所有的语句,还是只包含了一个空语句.
刚刚做过实验了,把y改成3,发现 int z= x + y; System.out.println("z is"+z);没有执行.
所以第一个if语句省略的大括号应该是包含后面所有语句的.