黑马程序员技术交流社区
标题:
写出以下语句执行后的结果
[打印本页]
作者:
杨立考
时间:
2012-9-24 21:01
标题:
写出以下语句执行后的结果
int x = 1,y = 1;
if(x++==2 & ++y==2) {
x =7;
}
System.out.println("x="+x+",y="+y);
作者:
赵宇
时间:
2012-9-24 21:04
输出结果是 x=2,y=2
作者:
hello_world!
时间:
2012-9-24 21:12
结果是:x=2,y=2
作者:
hello_world!
时间:
2012-9-24 21:12
结果是:x=2,y=2
作者:
hello_world!
时间:
2012-9-24 21:13
结果是:x=2,y=2
作者:
张小龙
时间:
2012-9-24 22:21
没什么好说的,太简单了
x=2,y=2
作者:
黄佳
时间:
2012-9-24 23:30
(x++==2 & ++y==2)
前面半句: x先做运算然后自增 1==2 结果就是 flase 因为的单 & 所以 虽然整个式子 有flase 了结果已经为 flase了 ,但是 单& 后面的表达式也要做运算 , 所以 y 也自增了
所以 if 条件不成立 里面的表达式 不执行 x 和 y 各做了一次 自增 输出结果为 x=2 , y=2
作者:
佘天宇
时间:
2012-9-25 00:21
class Text3
{
public static void main(String[] args)
{
int x = 1,y = 1;
//这里的x先是将x=1的值和2判断,判断结果是false,然后再自加1,x的值是2.
//而后面的y是先自加1,这时候值变成了2,在进行"==2"的判断,判断结果true
if(x++==2 & ++y==2)//(false&true)结果还是false,所以if中的语句不执行。
{
x =7;
}
//在if的条件表达式中运行后,x和y的值都变成了2,所以输出结果是2,2
System.out.println("x="+x+",y="+y);
}
}
复制代码
作者:
杜正华
时间:
2012-9-25 09:40
package com.aduvm.practice;
public class IfDemo1 {
/**
* @param args
*/
public static void main(String[] args)
{
int x = 1,y = 1;
if(x++==2 & ++y==2) { //首先判断左边1==2?不等于所以左边结果为0,x=2,再判断2==2吗?右边结果为1,y=2
x =7; //由于0&1的值为0即为假,所以if条件语句里的程序不执行
}
System.out.println("x="+x+",y="+y); //输出x=2,y=2
}
}
复制代码
作者:
李健_8
时间:
2012-9-25 13:24
public class A{
public static void main(String[] args) {
int x = 1,y = 1;
if(x++==2 & ++y==2) {
//亮点就在于if判断语句中的x++和++y,一个是先赋值后计算,一个是先计算后赋值,if语句执行不了,直接跳过
x =7;
}
System.out.println("x="+x+",y="+y); //x=2,y=2
}
}
作者:
陈琦
时间:
2012-9-25 15:25
(x++==2 & ++y==2) 我感觉拆开来看比较好:(x=x+1==2 & (y=y+1)==2) 所以结果是x=2,y=2
作者:
chjxs
时间:
2012-9-25 21:21
这个就是理解
1) ++i 与 i++ ;
----> ++只是改变自变量,表达式的值与++无关。一个是赋值后i变量自加,另一个是i变量自加后再赋值。
2) &运算;
——> &没短路功能。&&有。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2