日期:2014-05-20  浏览次数:20794 次

我今天刚去应聘的一道笔试题,帮我分析一下?
public   class   Bishiti
{
static   boolean   fan(char   a)
{
System.out.print(a);
return   true;
}
public   static   void   main(String   args[])
{
int   i=0;
for(fan( 'a ');fan( 'b ')&&i <2;fan( 'c '))
{
i++;
fan( 'd ');
}
}

}

大家先别去运行,先分析分析,在去运行一下。为什么是那样的结果?


------解决方案--------------------
public class Bishiti


哈哈,笑死了
------解决方案--------------------
大相径庭.....
------解决方案--------------------
abdcbdcb
scjp的
------解决方案--------------------
abdcbdcb

------解决方案--------------------
知道for是怎么工作的就可以了,楼主真逗!
------解决方案--------------------
这个题曾经有人问过
印象考的是两个知识点
1,for();是怎样的执行顺序;(f(a)-> fan( 'b ')-> i <2-> -> i++-> fan( 'd ')-> fan( 'c ')-> f(b)-> i(=1) < 2 -> i++ -> fan( 'd ') -> -> fan( 'c ') -> fan(b)-> i (==2) <(2)(停止))
2,&&的执行顺序.但是看这道题好像就不必考虑2的情况了

------解决方案--------------------
这好像挺简单的
只是仔细点
------解决方案--------------------
不错,这个问题,主要考察细心与基本知识的
所涉及知识点:
1,for()循环中的初始值的的应用,步长的增加。
2,&&的应用。(我现在还有点疑惑:&&与&的区别?????)
------解决方案--------------------
不错,这个问题,主要考察细心与基本知识的
所涉及知识点:
1,for()循环中的初始值的的应用,步长的增加。
2,&&的应用。(我现在还有点疑惑:&&与&的区别?????)

++++++++++++++++++++++++++++++++++++++++++++++++
&两边都要进行运算,而用&&是左边为假时不进行右边的运算.
------解决方案--------------------
不错的题~~~~
跟同事讨论了下,希望大家给意见:
主要了解for的执行顺序
1:执行fan( 'a '),输出a
2:执行fan( 'b '),输出b
3:fan( 'b ')&&i <2为真, 执行i++;fan( 'd ');i=1,输出d
4:执行fan( 'c '),输出c
5:执行fan( 'b '),输出b
6:fan( 'b ')&&i <2为真, 执行i++;fan( 'd ');i=2,输出d
7:执行fan( 'c '),输出c
8:执行fan( 'b '),输出b
9:fan( 'b ')&&i <2为假,停止~~~~~~~~~