下面这段代码为什么运行结果为3啊,求告知!
public static void main(String[] args)
{
int a=1, b=2, c=3;
if (a<0)
if (b<0)
c=10;
else
c=20;
System.out.println(c);
}
else和最接近的if配对
所以
if (a<0)
{
if (b<0)
{
c=10;
}
else
{
c=20;
}
}
加上括号 你就明白了
public static void main(String[] args)
{
int a=1, b=2, c=3;
if (a<0){
---------if (b<0){
c=10;
else
c=20;
---------}
-------}
System.out.println(c);
}
所以这样写,有好处吗。。。没有 纯粹装B,浪费接盘人的时间
因为你if(a<0)的条件不满足,直接跳过了,所以打印出来的c是初始化的值,没什么毛病啊
3,把括号带上,,自己写的都看不懂,。。。。
int a=1, b=2, c=3;
if (a<0){
if(b<0){
c=10;
}else{
c=20;
}
}else{
c=3;
}
System.out.println(c);
写代码要注意规范,加上括号逻辑就清楚了
public static void main(String[] args) {
int a=1, b=2, c=3;
if (a<0){
if (b<0){
c=10;
}else{
c=20;
}
}
//因为a=1,所有上面的条件都不满足,打印c=3
System.out.println(c);
}
其实最外层的if给它套个什么都不干的else你就看懂了
public static void main(String[] args){
int a = 1,b = 2, c = 3;
if(a<0){//因为赋值时a=1 1< 0 不成立 所以里面的里面的if都不执行直接跳掉加上去的else那里
if(b<0){
c = 10;
}else{
c = 20;
}
}else{}//加一个什么都不执行的else语句 因为1<0不执行 所以流程走到这里 而c最初被赋值为3所以说这个if语句并没有对c进行任何在赋值的操作所以c的值还是3
}