首页 > 试题广场 >

What is the result of the foll

[单选题]
下面代码运行结果是?
public class Test
{
	static boolean foo(char c)
	{
		System.out.print(c);
		return true;
	}
	public static void main( String[] argv )
	{
		int i = 0;
		for ( foo('A'); foo('B') && (i < 2); foo('C'))
		{
			i++ ;
			foo('D');
		}
	}
}

  • ABDCBDCB
  • ABCDABCD
  • Compilation fails.
  • An exception is thrown at runtime.
推荐
for(条件1;条件2;条件3) {
    //语句
}
执行顺序是条件1->条件2->语句->条件3->条件2->语句->条件3->条件2........
如果条件2为true,则一直执行。如果条件2位false,则for循环结束
编辑于 2015-09-17 08:07:34 回复(21)
改写成while语句,一目了然 
int i = 0; 
foo('A'); 
while(foo('B') && (i<2)){
    i++;
    foo('D');
    foo('C');
}
编辑于 2017-08-01 13:09:03 回复(0)
考for循环的执行顺序,1.先执行初始化条件,2.执行判断条件,3.如果满足2的条件,执行循环体中代码;4.执行foo('c'), 5.初始化条件不在执行,友从2开始执行
发表于 2015-08-08 10:48:05 回复(1)
for语句的执行过程:
//for(1;2;3){4}
1.说明:语句1只执行一次,只有2是判断条件
2.执行顺序:1--2--4--3--2--4---3
3.结果:
第一轮:ABDC----i=1
第二轮:BDC----i=2
第三轮:B-----结束
发表于 2017-08-30 22:52:49 回复(1)
for(a;b;c)
执行顺序
先执行a
在判断b是否为真,若为真
执行循环体,
执行c
然后再次判断b是否为真,若为真
执行循环体
执行c
。。。
直到b为假,跳出循环
发表于 2017-07-26 16:33:05 回复(0)
 static boolean foo(char c)
    {
        System.out.print(c);
        return true;
    }
    public static void main( String[] argv )
    {
        int i = 0;
        for ( foo('A'); foo('B') && (i < 2); foo('C'))
        {
            i++ ;
            foo('D');
        }
    }
i=0,c=A
i=0,c=B 满足循环条件c=B且i<2
i=i++,c=D
i=1,c=C;
第二次 不会在初始化,只会执行循环体
i=1,c=B;  满足循环条件c=B且i<2
i=i++,c=D;
i=2,c=C;
第三次
i=2,c=B;不满足i<2 退出循环
结果为ABDCBDCB
发表于 2021-01-08 09:56:01 回复(0)
答案:A
for循环执行过程,先执行初始化foo('A'),在执行条件foo('B'),满足条件执行foo('D'),判定是否满足下次执行条件foo('C');第二次初始化foo('A')语句不会再执行
编辑于 2015-09-17 08:07:27 回复(0)
没人觉得static很奇怪吗,不应该在类加载时就执行吗
发表于 2017-09-05 17:16:00 回复(6)
按照一楼的解析,写了个适合我的傻瓜版。执行如下:①foo('A')//=Afoo('B') && (i < 2)//=B i++;foo('D')//=D,i=1foo('C')//=Cfoo('B') && (i < 2)//=Bi++;foo('D')//=D,i=2foo('C')//=Cfoo('B') && (i < 2)//=B[输出B,i=2,for结束]
发表于 2021-07-04 17:17:04 回复(0)
for循环计算顺序:
1、for(   foo('A'); foo('B') && (i < 2);
2、循环体
3、 foo('C')
4、 foo('B') && (i < 2)
5、循环体
。。。。。。
发表于 2016-07-20 19:34:50 回复(0)
Mark
for(条件1;条件2;条件3) {
    //语句
}
执行顺序是条件1->条件2->语句->条件3->条件2->语句->条件3->条件2........
如果条件2为true,则一直执行。如果条件2位false,则for循环结束
发表于 2022-07-04 12:28:14 回复(0)
<p>一开始没看懂 后来理解了 就是记住一个顺序 for循环中的三个条件 是先执行第一个 然后第二个 然后执行循环体。切记 第三个参数是在循环体执行完后在执行的</p>
发表于 2020-08-20 18:13:47 回复(0)
for(条件1;条件2;条件3) {
    //语句
}
执行顺序是条件1->条件2->语句->条件3->条件2->语句->条件3->条件2........
发表于 2016-10-09 09:41:36 回复(0)
为什么 第二次foo('A')语句不会再执行啦!
发表于 2016-07-15 09:17:50 回复(2)
mark
发表于 2015-08-17 18:16:46 回复(0)
我好奇的是for循环条件一居然能写Boolean值?
发表于 2023-07-16 10:33:00 回复(1)
关键点是对 for 循环语句的条件执行时机、循环条件的理解。
for (循环变量初始化 A; 循环判断条件 B; 循环变量迭代 C){ 
    // 循环体 
}
循环变量初始化语句 A:该语句在 for 循环开始前执行,且只执行一次,支持多条初始化语句,用逗号分开;
循环判断条件 B:是一个 boolean 表达式,为 true 时执行一次循环体,为 false 时结束循环;
循环变量迭代 C:实现对循环变量的迭代控制,执行完一次循环体之后执行。
从执行顺序上来看:A → B → C → B → C ...
编辑于 2018-02-24 13:57:46 回复(0)
求解答……for循环第二条件为false,为什么还能进循环体?
发表于 2017-06-27 16:14:07 回复(0)
for(条件1;条件2;条件3) {
    语句
}
执行顺序是条件1->条件2->语句->条件3->条件2->语句->条件3->条件2........
如果条件2为true,则一直执行。如果条件2位false,则for循环结束
发表于 2017-02-24 11:35:51 回复(0)
为什么在这写题,每次选了这个选项,对答案的时候说我选的另一个,服了
发表于 2024-04-02 09:01:36 回复(0)
foo('A')的返回值为true,一个boolean值也可以作为初始化语句吗?
编辑于 2024-03-11 11:23:48 回复(0)