日期:2014-05-18  浏览次数:20707 次

Java面试题求解
今天面试 面试官出了一道简单的面试题,但是我不会。
int i=1,n=1;
i = i ++ + + n ;
i是多少?

请问红色部分是什么意思?
i ++ 能理解 + 能理解, 但是没见过 +n 的,这种是什么表达式?
------解决方案--------------------
年轻人,那是正数的标志

+1,-1没见过?
------解决方案--------------------
出这种题的都是SB
------解决方案--------------------
public static void main(String[] args)
{
int i = 1;
int j = 1;

//可以通过编译的:
//通俗点讲:++只能是紧挨着i,或紧挨着j,否则的++就编译不过;
i = i + + j; //++写道一块就是错的;
System.out.println(i);

//++写到i的后面;
i = 1;
j = 1;
i = i ++ + j;
System.out.println(i);

i = 1;
j = 1;
i = i ++ + + j;
System.out.println(i);

i = 1;
j = 1;
i = i ++ + + + j;
System.out.println(i);

i = 1;
j = 1;
i = i ++ + + + + j;
System.out.println(i);

//例如,不能通过编译的:i = i ++ ++ + j;

System.out.println("--------------");

//++放到j的前面
i = 1;
j = 1;
i = i + ++ j;
System.out.println(i);

i = 1;
j = 1;
i = i + + ++ j;
System.out.println(i);
}



------解决方案--------------------
i = (i++) + (+ n) ;   //+n就是正1。这写法除了增加出错风险和阅读难度一点意义都没有。包括I=I++;
------解决方案--------------------
引用:
年轻人,那是正数的标志

+1,-1没见过?



对的啊 实际上那个可以替代为  
i=(i++) + (+n);
   


所以结果应该是2;